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