一、介绍
提供了大量的方法对集合元素进行排序,查询,修改等操作,还提供了将集合对象这职位不可变、对集合对象实现同步控制的方法
二、排序、查找、替换
import java.util.ArrayList;
import java.util.Collections;
public class SortTest {
public static void main(String[] args) {
// TODO 自动生成的方法存根
ArrayList nums = new ArrayList();
nums.add(2);
nums.add(-4);
nums.add(43);
nums.add(0);
nums.add(2);
System.out.println(nums);
Collections.reverse(nums);// 次序反转
System.out.println(nums);
Collections.sort(nums);// 排序
System.out.println(nums);
Collections.shuffle(nums);// 随机排序
System.out.println(nums);
System.out.println("最大 " + Collections.max(nums));
System.out.println("最小 " + Collections.min(nums));
Collections.replaceAll(nums, 0, 1);// 将0替换为1
System.out.println(nums);
System.out.println("元素2在集合中出现的次数 " + Collections.frequency(nums, 2));
Collections.sort(nums);// 排序后进行二分法查询
System.out.println(nums);
System.out.println(Collections.binarySearch(nums, 43));
}
}
三、同步控制
提供了多个synchronizedXxx()方法,可以将指定集合包装成线程同步的集合,从而解决多线程并发访问集合时线程安全的问题。
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class SynchronizedTest {
public static void main(String[] args) {
//提供了4种方法
Collection collections=Collections.synchronizedCollection(new ArrayList());
List list=Collections.synchronizedList(new ArrayList());
Set set=Collections.synchronizedSet(new HashSet());
Map map=Collections.synchronizedMap(new HashMap());
}
}
四、设置不可变集合
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class UnmodfiableTest {
public static void main(String[] args) {
// 创建一个空的不可改变的List
List unmodifiableList=Collections.emptyList();
//只有一个元素不可改变的Set
Set unmodifiableSet=Collections.singleton("java");
//创建一个Map
Map score=new HashMap();
score.put("语文", 90);
score.put("数学", 100);
//返回普通Map对象的不可变版本
Map unmodifiableMap=Collections.unmodifiableMap(score);
//以下代码会产生异常
unmodifiableList.add("1234");
unmodifiableSet.add("hello");
unmodifiableMap.put("ahah", 66);
}
}