Collections是一个工具类,定义了若干用于类集(Collection)和映射(Map)的静态方法。
1、排序
sort(List<T> list) | 根据其元素的自然排序对指定的列表进行排序。 |
static <T> void sort(List<T> list, Comparator<? super T> c) | 根据指定的比较器对指定的列表进行排序。 |
@Test
public void sorted(){
List<String> list = new ArrayList();
list.add("tangsan");
list.add("bibidong");
list.add("qiandaoliu");
list.add("chenxin");
list.add("mahongjun");
list.add("qiandaoliu");
System.out.println("排序前");
System.out.println(list);
Collections.sort(list);
System.out.println("排序后");
System.out.println(list);
}
输出内容:
排序前
[tangsan, bibidong, qiandaoliu, chenxin, mahongjun, qiandaoliu]
排序后
[bibidong, chenxin, mahongjun, qiandaoliu, qiandaoliu, tangsan]
list的主要特点就是有序且可重复
2、二分法查找
二分法查找的前提条件是:集合内容必须是从小到大排序的
Comparable<? super T>> list, T key) | 使用二叉搜索算法搜索指定对象的指定列表。 |
binarySearch(List<? extends T> list, T key, Comparator<? super T> c) | 使用二叉搜索算法搜索指定对象的指定列表。 |
@Test
public void binarySearchTest(){
List<String> list = new ArrayList();
list.add("tangsan");
list.add("bibidong");
list.add("qiandaoliu");
list.add("chenxin");
list.add("mahongjun");
list.add("qiandaoliu");
Collections.sort(list);
System.out.println("排序后");
System.out.println(list);
int index = Collections.binarySearch(list, "qiandaoliu");
System.out.println("qiandaoliu 出现的位置在 " + index);
}
输出内容:
排序后
[bibidong, chenxin, mahongjun, qiandaoliu, qiandaoliu, tangsan]
qiandaoliu 出现的位置在 4
3、倒序排列
reverse(List<?> list) | 反转指定列表中元素的顺序。 |
@Test
public void reverseTest(){
List<String> list = new ArrayList();
list.add("tangsan");
list.add("bibidong");
list.add("qiandaoliu");
list.add("chenxin");
list.add("mahongjun");
list.add("qiandaoliu");
System.out.println("反序前");
System.out.println(list);
Collections.reverse(list);
System.out.println("反序后");
System.out.println(list);
}
输出内容:
反序前
[tangsan, bibidong, qiandaoliu, chenxin, mahongjun, qiandaoliu]
反序后
[qiandaoliu, mahongjun, chenxin, qiandaoliu, bibidong, tangsan]
4、随机排序
shuffle(List<?> list) | 使用默认的随机源随机排列指定的列表。 |
shuffle(List<?> list, Random rnd) | 使用指定的随机源随机排列指定的列表。 |
@Test
public void shuffleTest(){
List<String> list = new ArrayList();
list.add("tangsan");
list.add("bibidong");
list.add("qiandaoliu");
list.add("chenxin");
list.add("mahongjun");
list.add("qiandaoliu");
System.out.println("乱序前");
System.out.println(list);
Collections.shuffle(list);
System.out.println("乱序前");
System.out.println(list);
}
输出内容:
乱序前
[tangsan, bibidong, qiandaoliu, chenxin, mahongjun, qiandaoliu]
乱序前
[bibidong, tangsan, qiandaoliu, mahongjun, qiandaoliu, chenxin]
5、交换
swap(List<?> list, int i, int j) | 交换指定列表中指定位置的元素。 |
@Test
public void swapTest(){
List<String> list = new ArrayList();
list.add("tangsan");
list.add("bibidong");
list.add("qiandaoliu");
list.add("chenxin");
list.add("mahongjun");
list.add("qiandaoliu");
System.out.println("交换前");
System.out.println(list);
System.out.println("交换后");
Collections.swap(list, 2,4);
System.out.println(list);
}
输出内容:
交换前
[tangsan, bibidong, qiandaoliu, chenxin, mahongjun, qiandaoliu]
交换后
[tangsan, bibidong, mahongjun, chenxin, qiandaoliu, qiandaoliu]
6、最大值
max(Collection<? extends T> coll) | 根据其元素的 自然顺序返回给定集合的最大元素。 |
max(Collection<? extends T> coll, Comparator<? super T> comp) | 根据指定的比较器返回给定集合的最大元素。 |
@Test
public void maxTest(){
List<String> list = new ArrayList();
list.add("tangsan");
list.add("bibidong");
list.add("qiandaoliu");
list.add("chenxin");
list.add("mahongjun");
list.add("qiandaoliu");
System.out.println(list);
String max = Collections.max(list);
System.out.println("最大值");
System.out.println(max);
}
输出内容:
[tangsan, bibidong, qiandaoliu, chenxin, mahongjun, qiandaoliu]
最大值
tangsan
7、最小值
min(Collection<? extends T> coll) | 根据其元素的 自然顺序返回给定集合的最小元素。 |
min(Collection<? extends T> coll, Comparator<? super T> comp) | 根据指定的比较器返回给定集合的最小元素。 |
@Test
public void minTest(){
List<String> list = new ArrayList();
list.add("tangsan");
list.add("bibidong");
list.add("qiandaoliu");
list.add("chenxin");
list.add("mahongjun");
list.add("qiandaoliu");
System.out.println(list);
String min = Collections.min(list);
System.out.println("最小值");
System.out.println(min);
}
输出内容:
[tangsan, bibidong, qiandaoliu, chenxin, mahongjun, qiandaoliu]
最小值
bibidong
8、填充
fill(List<? super T> list,T obj) | 用指定的元素代替指定列表的所有元素。 |
@Test
public void fillTest(){
List<String> list = new ArrayList();
list.add("tangsan");
list.add("bibidong");
list.add("qiandaoliu");
list.add("chenxin");
list.add("mahongjun");
list.add("qiandaoliu");
System.out.println("填充前");
System.out.println(list);
System.out.println("填充后");
Collections.fill(list, "xuebeng");
System.out.println(list);
}
输出内容:
填充前
[tangsan, bibidong, qiandaoliu, chenxin, mahongjun, qiandaoliu]
填充后
[xuebeng, xuebeng, xuebeng, xuebeng, xuebeng, xuebeng]