Java Collections

java.util.Collections 是一个工具类,他包含了大量对集合进行操作的静态方法.

方法名 描述
void sort(List list) 按自然升序排序
void sort(List list,Comparator c) 自定义排序规则排序
void shuffle(List list) 随机排序,用于打乱顺序
void reverse(List list) 反转,将列表元素顺序反转
void swap(List list,int i,int j) 交换处于索引 i 和 j 位置的元素
int binarySearch(List list,Object key) 二分查找,列表必须有序,返回找到的元素索引位置
int max(Collection coll) 查找最大值
int min(Collection coll) 查找最小值
void fill(List list,Object obj) 使用obj填充list所有元素
boolean replaceAll(List list,Object oldVal,Object newVal) 使用用newVal替换所有的oldVal
<K,V>Map<K,V> synchronizedList(List list) 将list包装为线程安全的List
List synchronizedList(List list) 将list包装为线程安全的List
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionsDemo {
public static void main(String[] args) {
// 创建一个空List
List<Integer> list = new ArrayList<>();
//赋值
list.add(3);
list.add(5);
list.add(7);
list.add(9);
list.add(12);
System.out.print("初始顺序:");
list.forEach(v -> System.out.print(v + "\t"));


//打乱顺序
Collections.shuffle(list);
System.out.print("\n打乱顺序:");
list.forEach(v -> System.out.print(v + "\t"));

//反转
Collections.reverse(list);
System.out.print("\n反转集合:");
list.forEach(v -> System.out.print(v + "\t"));

//第一个位和最后一位交换
Collections.swap(list,0,list.size()-1);
System.out.print("\n交换第一位和最后一位:");
list.forEach(v -> System.out.print(v + "\t"));

//按自然升序排序
Collections.sort(list);
System.out.print("\nSort排序后:");
list.forEach(v -> System.out.print(v + "\t"));

//二分查找 必须排序后
System.out.print("\n二分查找数值7的位置:"+Collections.binarySearch(list, 7));

//返回线程安全的list
List<Integer> synchronizedList = Collections.synchronizedList(list);
}
}

运算结果:

1
2
3
4
5
6
7
8
$ javac CollectionsDemo.java
$ java CollectionsDemo
初始顺序:3 5 7 9 12
打乱顺序:5 7 3 12 9
反转集合:9 12 3 7 5
交换第一位和最后一位:5 12 3 7 9
Sort排序后:3 5 7 9 12
二分查找数值7的位置:2