java集合通用方法

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


一、Collection 接口的通用方法(适用于ListSetQueue等)

以下方法在大多数集合类中通用:

方法作用示例
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 接口特有方法(如ArrayListLinkedList

除了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 接口(如HashSetTreeSet

Set继承自Collection接口,没有新增方法,但行为不同:

  • 不允许重复元素。
  • 不保证顺序(LinkedHashSet例外)。

四、Map 接口的通用方法(如HashMapTreeMap

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); // 对列表排序


七、注意事项

  1. 泛型:始终使用泛型(如List<String>)保证类型安全。
  2. 线程安全ArrayListHashMap等是非线程安全的;多线程环境需使用ConcurrentHashMapCollections.synchronizedList
  3. 迭代器:遍历时若修改集合,需用Iteratorremove()方法,避免ConcurrentModificationException

掌握这些方法能帮助你高效操作集合数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值