一、Collections估工具类
1、Collections.sort()排序函数
此方法是对List类型的数据进行排序,对于自定义的实体类存入的list想要调用此函数排序,则实体类要实现Comparable接口并重写compareTo()方法,也可以实体类不实现Comparable接口,但是需要自定义一个类实现Comaprator接口并重写compare()方法。
Collections.sort()的两种形式
public static <T extends Comparable<? super T>> void sort(List<T> list) {
list.sort(null);
}
public static <T> void sort(List<T> list, Comparator<? super T> c) {
list.sort(c);
}
底层调用是Arrays.sort()实现的
2、Collections.shuffle()
将List随机打乱顺序,底层会根据传入的是ArrayList还是LinkedList进行不同的处理。
3、Collections.binarySearch()
以二分的算法查找指定元素,注意最好将List变为有序的,否则可能会找不到,并且返回值也可能与预期值不一致。
4、Collections.max() 与Collections.min()
采用Collections内含的比较法获取最大与最小值,当然也可以传入自定义的实现Comparator接口比较
5、Collections.indexOfSubList()与Collections.lastIndexOfSubList()
参数是两个list,第二个是子list,分别返回的是subList在list中第一次出现和最后一次出现位置的索引
6、Collections.replaceAll()
替换指定元素为某元素,若要替换的值(旧元素)存在刚返回true,反之返回false
7、Collections.reverse()
反转集合中元素的顺序
8、Collections.rotate()
将list的后n个元素整体拿到前面来
9、Collections.copy();
参数为两个list,第一个list的长度要大于第二个,否则会报错,结果会将list2中的元素覆盖到list1中的前面
10、Collections.swap(strings1,2,3)
交换第2和第3个元素的位置
11、Collections.fill(strings1,“object”)
用object替换string1中的所有元素
二、Arrays类
Arrays主要包含了操作数组的常用方法
1、Arrays.toString(int[ ] array)
会以字符串的形式返回数组的全部值而无需手动遍历,一般用于打印数组,如下:
System.out.println(Arrays.toString(array));
2、Arrays.fill()
此方法对每一个基本类型都有两中重载形式,如下:
//把下标在第2到第4之间的元素置为100,顾前不顾后
Arrays.fill(array,2,4,100);
//把全部元素置为100
Arrays.fill(array,100);
3、Arrays.sort()
对数组进行排序,如果元素少于47,就采用插入排序;大于47且小于286就采用一种双轴快排;大于286采用归并排序。
默认进行的是升序排序,可以传入一个自定义的实现Compator接口,也可以对指定区间的元素进行排序。
4、Arrays.equals(int[ ] a, int[ ] a2)
比较两个数组是否相等
5、Arrays.binarySearch()
采用二分的方法查找元素下标,数组一定要有序,否则可能出错
6、Arrays.copeOf() 和Arrays.copeOfRange()
用于截取数组
Arrays.copyOf(array,3);
Arrays.copyOfRange(array,3,6);