概述:
他是一个专门操作单列集合数据相关功能的工具类
定义了一些功能可以专门操作单列集合数据的。
常用功能:
1、int binarySearch(List list, E e ):
使用二分查找法查找指定元素e在list集合中第一次出现的索引值
使用前提:要求集合的数据必须排序
返回值:
查找的元素在集合中有返回对应的索引值
集合没有元素返回负数
2、int frequency(Collection c, E e):
返回在集合 c 中的元素 e 的个数
3、max、min:
获取集合的最大值或者最小值
4、replaceAll(List list, E oldVal, E newVal):
使用新的数据替换list集合中旧的数据
5、reverse(List list):
反转指定集合list的数据
6、shuffle(List list):
随机打乱指定集合list元素的位置【打乱顺序】
7、swap(List list, int a, int b):
交换集合list中a和b两个索引位置上面的值
8、synchronizedXxx 方法系列:
Xxx指的是集合的类型【Collection List】
把一个线程不安全的集合变成线程安全的集合
9、unmodifiableXxx 方法系列:
返回一个不能修改的集合
10、sort(List list):
对list集合进行升序排序
代码示例:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CollectionsDemo {
public static void main(String[] args) {
//创建集合对象
ArrayList<Integer> arrayList = new ArrayList<Integer>();
//向集合中添加元素
arrayList.add(1);
arrayList.add(32);
arrayList.add(12);
arrayList.add(90);
arrayList.add(-12);
arrayList.add(-11);
arrayList.add(12);
System.out.println(arrayList); //[1, 32, 12, 90, -12, -11, 12]
//对集合进行升序排列
Collections.sort(arrayList);
System.out.println(arrayList); //[-12, -11, 1, 12, 12, 32, 90]
//使用二分法查找指定元素在集合中第一次出现的索引位置
//使用此方法,必须要先排序,在查找
int num = Collections.binarySearch(arrayList, 1);
System.out.println(num); //2
//返回集合中指定元素出现的次数
System.out.println(Collections.frequency(arrayList, 12)); //2
//获取集合的最大值
System.out.println(Collections.max(arrayList)); //90
//获取集合的最小值
System.out.println(Collections.min(arrayList)); //-12
//使用新的数据替换list集合中旧的数据
Collections.replaceAll(arrayList, 12, 100);
System.out.println(arrayList); //[-12, -11, 1, 100, 100, 32, 90]
//随机打乱指定集合list元素的位置【打乱顺序】
Collections.shuffle(arrayList);
System.out.println(arrayList); //每次顺序都不一样
//交换集合list中a和b两个索引位置上面的值
Collections.swap(arrayList, 2, 6);
System.out.println(arrayList); //[1, 100, -11, 90, 32, 100, -12]
//把一个线程不安全的集合变成线程安全的集合
List<Integer> arrayList2 = Collections.synchronizedList(arrayList);
System.out.println(arrayList); //[-11, 100, 1, 90, 32, 100, -12]
System.out.println(arrayList2); //[-11, 100, 1, 90, 32, 100, -12]
//返回一个不能修改的集合
List<Integer> arrayList3 = Collections.unmodifiableList(arrayList);
// arrayList3.add(50); //如果修改,编译不报错,运行报错
// System.out.println(arrayList3);
}
}