4.
Set
Set
是不包含重复元素的集合。可以更加正式地表达为,在
set
里面的元素
e1,e2,
不允许
e1.equals(e2),
而且最多有一个
null
元素。
Set
的主要方法如下,可以看出
List
和
Set
在方法上的区别了,
List
能够根据类似于
index
,来找到元素的方法,而
set
只管往集合里面放东西,并不管其插入的顺序,
List
有比较严格的插入顺序。
//Set
是否为空
boolean isEmpty();
//
是否包含指定元素
boolean contains(Object o);
//
遍历
Set
Iterator<E> iterator();
//
转化成数组
Object[] toArray();
//
添加元素
boolean add(E e);
//
清空集合
void clear();
//
只保留包含指定集合的元素
boolean retainAll(Collection<?> c);
4.1 HashSet
1
.
HashSet
的数据结构和工作原理
HashSet
的基本数据结构是
HashMap
,
HashMap
的基本数据结构是哈希表和链表,在构造函数上可以参见
HashMap
的工作原理,和
HashMap
一样,影响性能的因素包括:
set
的初始化容量大小,容量因子,和
HashCode
的构造,其主要方法实现如下:
/**
*
添加元素,注意是将
elment
作为
key
存进
HashupMap
,
*
同时指定所有对应的
element
的
value
都为同一个对象,
*
这样可以防止元素重复,同时可以看出
Hashset
允许
*
空元素
*/
public boolean add(E e) {
return
map.put(e, PRESENT)==null;
}
/**
*
移除元素
*/
public boolean remove(Object o) {
return
map.remove(o)==PRESENT;
}
/**
*
清空
set
*/
public void clear() {
map.clear();
}
/**
*Clone Set
*/
public Object clone() {
try {
HashSet<E>
newSet = (HashSet<E>) super.clone();
newSet.map
= (HashMap<E, Object>) map.clone();
return
newSet;
} catch
(CloneNotSupportedException e) {
throw
new InternalError();
}
}
public boolean contains(Object o) {
return
map.containsKey(o);
}
public boolean isEmpty() {
return
map.isEmpty();
}
public int size() {
return
map.size();
}
public Iterator<E> iterator() {
return
map.keySet().iterator();
}
分享到:
相关推荐
Collections 是 Java 中提供的一个工具类,提供了对集合类的操作方法,如 sort()、binarySearch()、max() 等。Collections 类提供了对集合类的搜索、排序、线程安全等操作。 四、如何选择集合类 在选择集合类时,...
### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...
### 精通Java集合框架——List, Set, Map #### 概述 Java集合框架是一种高度抽象且灵活的数据组织工具,它通过一系列接口来定义不同类型的数据容器,并提供了丰富的操作这些容器的方法。本文将深入探讨Java集合...
Java集合框架还包含了一些工具类,如Collections和Arrays,它们提供了各种实用方法,如排序、复制、反转和查找集合中的特定元素。此外,Set和List接口都有一个叫做CopyOnWriteArrayList和CopyOnWriteArraySet的特殊...
1. **集合框架**:Java集合框架是Java中处理对象集合的核心API,包括List、Set、Map等接口以及ArrayList、HashSet、HashMap等实现类。高效的数据结构如TreeSet和LinkedHashMap在排序和保持插入顺序方面具有重要作用...
此外,Java集合框架还提供了许多高级功能,如`Collections`工具类提供的排序、反转、查找等方法,以及`Stream API`带来的函数式编程能力,能够简化和优化代码。在处理大量数据时,了解并合理利用这些特性至关重要。 ...
Java工具类是Java编程中非常重要的组成部分,它们提供了一系列预定义的方法,可以帮助开发者高效地处理各种常见任务,而无需从头实现。在Java中,最知名的工具类库是`java.util`包,它包含了大量方便实用的类。下面...
9. **Collections工具类**: - 提供了对集合的各种操作,如排序、查找、填充、反转等。 10. **流(Stream)**:Java 8引入的新特性,允许以声明性方式处理集合,支持并行操作和函数式编程。 通过学习Java集合教程,...
1. **集合框架**:Java集合框架是Java中处理对象集合的核心部分,包括List、Set、Queue和Map等接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。它们提供了添加、删除、查找和遍历元素的方法,极大地...
1. **集合框架**:Java集合框架是Java工具类的一个重要组成部分,包括List、Set、Map等各种接口和实现类,如ArrayList、LinkedList、HashSet、HashMap等。这些类提供了丰富的操作方法,如添加元素、删除元素、查找...
Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和操作数据。本文档将深入探讨Java集合框架的关键组成...
在Java编程语言中,集合框架是处理对象组的重要工具,主要包括List、Set和Map三大接口。这些接口由Java Collection Framework提供,它是一个统一的架构,用于存储和操作各种类型的对象。接下来,我们将深入探讨这三...
Java集合框架还包含了一些工具类,如`Collections`(提供对集合的静态方法)、`Iterator`(遍历集合元素)、`Comparator`(用于比较对象)等。这些工具极大地提高了代码的可读性和效率。 在实际应用中,选择合适的...
Java集合框架主要包括`Collection`、`Set`、`List`、`Queue`、`Deque`、`Map`等接口和它们的具体实现类如`ArrayList`、`LinkedList`、`Vector`、`Stack`、`HashSet`、`HashMap`等。下面将对这些核心概念和类进行深入...
### JAVA集合(List, Set, Map)详解 #### 集合框架概述 Java集合框架是Java编程语言中处理数据组织的核心部分。它提供了一系列接口、抽象类和具体实现类,帮助开发者有效地管理对象集合。本篇文章将深入探讨集合框架...
### Java集合类原理详解 #### 1. 集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。它提供了一种灵活高效的方式来存储和访问对象集合,支持多种数据结构,如列表(List)、集(Set)、映射...
总的来说,这个示例着重介绍了Java集合框架的基本用法,包括创建、操作和遍历集合,以及一些常用的工具类方法。通过深入理解这些概念,开发者可以更好地设计和优化程序,提高代码的效率和可维护性。
此外,还有五个抽象类以及多个实现类,它们共同构成了Java集合框架的基础。 #### 二、核心接口介绍 1. **`Collection`接口**: - 这是最基本的接口,所有其他集合接口都是它的子类。它代表了一组对象,其中可能...
Collections 工具类是 Java 集合框架中的一种工具类,提供了多种集合操作方法,如排序、查找、复制等。Collections 工具类可以帮助开发者快速实现集合操作,提高开发效率。 Enumeration 是 Java 集合框架中的一种...