在Java集合框架中,不同集合类(如List、Set、Map等)有一些通用方法,也有一些特定于子接口或实现类的方法。以下是常见集合接口的共同方法及示例说明:

一、Collection 接口的通用方法(适用于List、Set、Queue等)
以下方法在大多数集合类中通用:
| 方法 | 作用 | 示例 |
|---|---|---|
boolean add(E e) | 添加元素到集合 | list.add(10); |
boolean remove(Object o) | 删除指定元素 | set.remove("Java"); |
int size() | 返回集合元素数量 | int len = list.size(); |
boolean isEmpty() | 检查集合是否为空 | if (set.isEmpty()) { ... } |
boolean contains(Object o) | 检查集合是否包含某个元素 | if (list.contains(5)) { ... } |
void clear() | 清空集合 | queue.clear(); |
Iterator<E> iterator() | 返回迭代器,用于遍历集合 | Iterator<Integer> it = list.iterator(); |
Object[] toArray() | 将集合转换为数组 | Object[] arr = set.toArray(); |
boolean addAll(Collection c) | 将另一个集合的所有元素添加到当前集合 | list1.addAll(list2); |
二、List 接口特有方法(如ArrayList、LinkedList)
除了Collection的方法,List还支持索引操作:
| 方法 | 作用 | 示例 |
|---|---|---|
E get(int index) | 获取指定索引的元素 | int num = list.get(0); |
E set(int index, E element) | 修改指定索引的元素 | list.set(1, 20); |
void add(int index, E e) | 在指定索引处插入元素 | list.add(0, "First"); |
E remove(int index) | 删除指定索引的元素 | list.remove(0); |
int indexOf(Object o) | 返回元素首次出现的索引 | int idx = list.indexOf("Java"); |
List<E> subList(int from, int to) | 截取子列表 | List<Integer> sub = list.subList(1, 3); |
三、Set 接口(如HashSet、TreeSet)
Set继承自Collection接口,没有新增方法,但行为不同:
- 不允许重复元素。
- 不保证顺序(
LinkedHashSet例外)。
四、Map 接口的通用方法(如HashMap、TreeMap)

Map接口的方法用于操作键值对:
| 方法 | 作用 | 示例 |
|---|---|---|
V put(K key, V value) | 添加键值对(覆盖已存在的键) | map.put("name", "Alice"); |
V get(Object key) | 根据键获取值 | String name = map.get("name"); |
V remove(Object key) | 根据键删除键值对 | map.remove("age"); |
boolean containsKey(Object key) | 检查是否包含某个键 | if (map.containsKey("id")) { ... } |
boolean containsValue(Object value) | 检查是否包含某个值 | if (map.containsValue(25)) { ... } |
Set<K> keySet() | 返回所有键的集合 | Set<String> keys = map.keySet(); |
Collection<V> values() | 返回所有值的集合 | Collection<Integer> vals = map.values(); |
int size() | 返回键值对数量 | int count = map.size(); |
五、通用工具方法(Collections类)
java.util.Collections提供操作集合的静态方法:
| 方法 | 作用 | 示例 |
|---|---|---|
sort(List<T> list) | 对列表排序 | Collections.sort(list); |
shuffle(List<?> list) | 随机打乱列表顺序 | Collections.shuffle(list); |
reverse(List<?> list) | 反转列表顺序 | Collections.reverse(list); |
max(Collection<?> coll) | 返回集合中的最大值 | int max = Collections.max(list); |
min(Collection<?> coll) | 返回集合中的最小值 | int min = Collections.min(list); |
synchronizedList(List<T> list) | 将列表转为线程安全版本 | List<T> syncList = Collections.synchronizedList(list); |
六、示例代码
// List 示例
List<Integer> list = new ArrayList<>();
list.add(10);
list.add(20);
list.remove(0); // 删除索引0的元素
System.out.println(list.get(0)); // 输出: 20
// Map 示例
Map<String, Integer> map = new HashMap<>();
map.put("age", 25);
map.put("score", 90);
System.out.println(map.get("age")); // 输出: 25
// Set 示例
Set<String> set = new HashSet<>();
set.add("Java");
set.add("Python");
System.out.println(set.contains("Java")); // 输出: true
// 使用Collections工具类
Collections.sort(list); // 对列表排序
七、注意事项
- 泛型:始终使用泛型(如
List<String>)保证类型安全。 - 线程安全:
ArrayList、HashMap等是非线程安全的;多线程环境需使用ConcurrentHashMap或Collections.synchronizedList。 - 迭代器:遍历时若修改集合,需用
Iterator的remove()方法,避免ConcurrentModificationException。
掌握这些方法能帮助你高效操作集合数据。
1640

被折叠的 条评论
为什么被折叠?



