Collections工具类
# 前言
Java 集合可分为Collection 和Map 两种体系:
Collection接口:单列数据,定义了存取一组对象的方法的集合List:元素有序、可重复的集合ArrayList、LinkedList、Vector
Set:元素无序、不可重复的集合HashSet、LinkedHashSet、TreeSet
Map接口:双列数据,保存具有映射关系“key-value对”的集合,也称为键值对。HashMap、LinkedHashMap、TreeMap、Hashtable、Properties
我们已经学完了所有集合的体系,接下来学习Collections工具类。
# 概述
- Collections 是一个操作Set、List和Map 等集合的工具类。
- Collections 中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、对集合对象实现同步控制等方法。
# 排序操作
下面是Collections 排序操作的常用方法(均为static方法):
reverse(List):反转List 中元素的顺序shuffle(List):对List集合元素进行随机排序sort(List):根据元素的自然顺序对指定List 集合元素按升序排序sort(List,Comparator):根据指定的Comparator 产生的顺序对List 集合元素进行排序swap(List,int,int):将指定list 集合中的i处元素和j 处元素进行交换操作数组的
# 查找、替换
Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素Object max(Collection,Comparator):根据Comparator 指定的顺序,返回给定集合中的最大元素Object min(Collection):根据元素的自然顺序,返回给定集合中的最小元素Object min(Collection,Comparator):根据Comparator 指定的顺序,返回给定集合中的最小元素int frequency(Collection,Object):返回指定集合中指定元素的出现次数void copy(List dest,List src):将src中的内容复制到dest中,- dest的size要大于等于src的size,否则报
IndexOutOfBoundsException。 - 如果要dest的size要跟src的size一样,可以使用
List dest = Arrays.asList(new Object[src.size]);,然后再拷贝。
- dest的size要大于等于src的size,否则报
boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换List 对象的所有旧值
# 同步控制
Collections常用方法:同步控制:
- Collections 类中提供了多个
synchronizedXxx()方法,该方法可使将指定集合包装成线程同步的集合,从而可以解决多线程并发访问集合时的线程安全问题。



# Enumeration
Enumeration 接口是Iterator迭代器的“古老版本”

Enumeration stringEnum = new StringTokenizer("a-b*c-d-e-g", "-");
while(stringEnum.hasMoreElements()){
Object obj= stringEnum.nextElement();
System.out.println(obj);
}
1
2
3
4
5
2
3
4
5
# 面试题
Collection和Collections的区别?
一个是存储单列数据的接口,另一个是操作Set、List和Map 等集合的工具类。
帮我改善此页面 (opens new window)
上次更新: 2020/12/27, 06:16:30