Java Collection 常用功能详解

在 Java 中,Collection 接口是所有集合类的根接口,主要用于存储和操作一组对象。它的常用功能包括添加、删除、遍历、排序、筛选等操作。

1. Collection 的核心方法

Collection 接口定义了一些通用方法,这些方法被 ListSet 等子接口继承。

方法 作用
add(E e) 添加元素
addAll(Collection<? extends E> c) 添加另一个集合的所有元素
remove(Object o) 删除指定元素
removeAll(Collection<?> c) 删除另一个集合中的所有元素
clear() 清空集合
contains(Object o) 检查集合是否包含某个元素
containsAll(Collection<?> c) 检查集合是否包含另一个集合的所有元素
isEmpty() 判断集合是否为空
size() 返回集合中元素个数
toArray() 转换为数组
iterator() 获取迭代器用于遍历

2. Collection 的常用功能

2.1 添加元素

可以使用 add() 方法向 Collection 添加元素。

1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.ArrayList;
import java.util.Collection;

public class CollectionAddExample {
public static void main(String[] args) {
Collection<String> coll = new ArrayList<>();
coll.add("Java");
coll.add("Python");
coll.add("C++");

System.out.println(coll); // [Java, Python, C++]
}
}

2.2 删除元素

可以使用 remove() 删除指定元素,或者 clear() 清空所有元素。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.ArrayList;
import java.util.Collection;

public class CollectionRemoveExample {
public static void main(String[] args) {
Collection<String> coll = new ArrayList<>();
coll.add("Java");
coll.add("Python");
coll.add("C++");

coll.remove("Python"); // 删除 "Python"
System.out.println(coll); // [Java, C++]

coll.clear(); // 清空集合
System.out.println(coll.isEmpty()); // true
}
}

2.3 判断元素是否存在

使用 contains() 判断集合中是否包含某个元素。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.HashSet;
import java.util.Set;

public class CollectionContainsExample {
public static void main(String[] args) {
Set<Integer> numbers = new HashSet<>();
numbers.add(10);
numbers.add(20);
numbers.add(30);

System.out.println(numbers.contains(20)); // true
System.out.println(numbers.contains(40)); // false
}
}

2.4 遍历集合

遍历 Collection 常用 三种方式

  1. Iterator 迭代器
  2. 增强 for 循环
  3. Lambda 表达式

方式 1:Iterator 迭代器

Collection集合获取迭代器的方法

方法名称 说明
Iterator iterator() 返回集合中的迭代器对象,该迭代器对象默认指向当前集合的第一个元素

Iterator迭代器中的常用方法

方法名称 说明
boolean hasNext() 询问当前位置是否有元素存在,存在返回true,不存在返回false
E next() 获取当前位置的元素,并同时将迭代器对象指向下一个元素处
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;

public class CollectionIteratorExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}

方式 2:增强 for 循环

增强for可以遍历集合或者数组

增强for遍历集合,本质就是迭代器遍历集合的简化写法

格式如下:

1
2
3
for(元素的数据类型 变量名 : 数组或集合){

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.List;
import java.util.ArrayList;

public class CollectionForEachExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");

for (String lang : list) {
System.out.println(lang);
}
}
}

方式 3:Lambda 表达式(Java 8)

方法名称 说明
default void forEach(Consumer<? super T> action) 结合lambda遍历集合
1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.List;
import java.util.ArrayList;

public class CollectionLambdaExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");

list.forEach(System.out::println);
}
}

2.5 集合转换为数组

使用 toArray() 方法将 Collection 转换为数组。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.List;
import java.util.ArrayList;

public class CollectionToArrayExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");

String[] array = list.toArray(new String[0]);
for (String lang : array) {
System.out.println(lang);
}
}
}

2.6 批量操作

合并集合

使用 addAll() 方法将一个集合中的所有元素添加到另一个集合中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.ArrayList;
import java.util.List;

public class CollectionAddAllExample {
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("Java");
list1.add("Python");

List<String> list2 = new ArrayList<>();
list2.add("C++");
list2.add("Go");

list1.addAll(list2);
System.out.println(list1); // [Java, Python, C++, Go]
}
}

求交集

使用 retainAll() 方法保留两个集合的交集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.HashSet;
import java.util.Set;

public class CollectionRetainAllExample {
public static void main(String[] args) {
Set<String> set1 = new HashSet<>();
set1.add("Java");
set1.add("Python");
set1.add("C++");

Set<String> set2 = new HashSet<>();
set2.add("Python");
set2.add("C++");
set2.add("Go");

set1.retainAll(set2); // 仅保留交集
System.out.println(set1); // [Python, C++]
}
}

求差集

使用 removeAll() 删除另一个集合中的元素。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.HashSet;
import java.util.Set;

public class CollectionRemoveAllExample {
public static void main(String[] args) {
Set<String> set1 = new HashSet<>();
set1.add("Java");
set1.add("Python");
set1.add("C++");

Set<String> set2 = new HashSet<>();
set2.add("Python");
set2.add("C++");

set1.removeAll(set2); // 移除 set2 中的元素
System.out.println(set1); // [Java]
}
}

总结

1. 常见方法

  • add() / remove() / clear()
  • contains() / size() / isEmpty()
  • toArray() 转换为数组
  • addAll() / removeAll() / retainAll()(批量操作)

2. 遍历方式

  • 增强 for 循环
  • Iterator 迭代器
  • Lambda 表达式(Java 8)