"Java集合框架的笔记主要涵盖了集合的基本概念、集合的使用以及Set接口的特性。"
在Java编程中,集合框架是处理对象集合的核心工具,它提供了高效且灵活的数据存储和操作方式。集合框架始于`Collection`接口,它是所有单元素集合的父接口。`Collections`则是一个实用类,提供了对集合的各种操作和支持。
## 集合概述
集合分为两种主要类型:`Collection`和`Map`。`Collection`接口存储单个元素,而`Map`接口用于存储键值对。在`Collection`中,`Set`接口代表了不允许有重复元素的集合,而`List`接口则允许元素有序并可能重复。
## 集合基本使用
集合默认存储的数据类型是`Object`,这意味着你可以存储任何类型的对象。要访问集合中的元素,需要使用`Iterator`迭代器。下面是一个使用迭代器遍历集合的例子:
```java
Collection col = new HashSet<>();
col.add(15);
Iterator iterator = col.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
```
此外,Java 5引入了增强型`for`循环(也称为foreach循环),简化了遍历集合的代码,但不能在循环中修改元素:
```java
Collection<Integer> col = new HashSet<>();
col.add(14);
for (Integer i : col) {
System.out.println(i);
}
```
## 集合常用方法
集合提供了多种操作方法,如检查元素是否存在、删除元素、获取集合大小以及判断集合是否为空:
```java
boolean contains = col.contains(123); // 判断集合col中是否包含元素123
col.remove(123); // 移除集合中的元素123
int size = col.size(); // 获取集合的长度
boolean isEmpty = col.isEmpty(); // 判断当前集合是否为空
```
注意,判断集合是否为空时,应先检查其是否为`null`,防止空指针异常。
## Set接口
`Set`接口继承自`Collection`,其特性是元素无序且不允许重复。在插入元素时,Set会通过比较新元素与已存在元素的`equals()`方法来判断是否重复。常见的Set实现类有`HashSet`、`LinkedHashSet`和`TreeSet`:
- `HashSet`:无序且不保证元素顺序,性能较高。
- `LinkedHashSet`:保持插入顺序的Set,内存消耗略高。
- `TreeSet`:根据元素的自然排序或自定义比较器进行排序的Set,保证元素有序。
### 判重方法
Set接口的实现类通常使用`equals()`和`hashCode()`方法来判断元素是否重复。因此,如果你要存储自定义对象,确保这些对象正确地重写了这两个方法,以确保Set能够准确地识别重复元素。
Java集合框架提供了丰富的数据结构和操作工具,使得开发者能够灵活地管理对象集合。理解并熟练掌握集合框架是每个Java程序员必备的技能之一。通过学习和实践,你可以根据实际需求选择合适的集合类型,并有效地处理各种数据存储和操作问题。