容器类的工具类,类比Arrays和数组
常用方法:
synchronized系列方法,将不同步的容器对象转换成同步的容器对象。
empryList()、emptySet()、emptyMap() 返回空的容器对象
重点:sort(List<T> list),sort(List<T> list, Comparator<? super T> c)对容器中的元素进行排序
reverse(List<?> list) 反转顺序
min(Collection<? extends T> coll), max(Collection<? extends T> coll) 在集合中取最小值和最大值
例子:
通过Collections创建一个List的集合
@Test
public void test1() {
List<String> list = Collections.emptyList();
System.out.println(list);
list.add("hello");
list.add("world");
list.add("java");
System.out.println(list);
}
通过Arrays的工具类创建一个不可变的list,在Collections的sort方法中利用lambda表达式来进行排序
@Test
public void test2() {
// 创建一个不可变的list
List<Integer> list = Arrays.asList(3, 4, 1, 2, 6, 7, 0);
Collections.sort(list);
System.out.println(list);
List<Teacher> list1 = Arrays.asList(
new Teacher("吴老师", 40, '男'),
new Teacher("李老师", 40, '男'),
new Teacher("方老师", 16, '男'),
new Teacher("郭老师", 18, '女')
);
System.out.println(list1);
//lambda表达式创建比较器
Collections.sort(list1, (t1, t2) -> t1.getAge() - t2.getAge());
System.out.println(list1);
}
反转list集合比较最大值和最小值
@Test
public void test3() {
List<Integer> list = Arrays.asList(3, 4, 1, 2, 6, 7, 0);
System.out.println(list);
Collections.reverse(list);
System.out.println(list);
List<String> list1 = Arrays.asList("java", "python", "go", "c", "c++", "c#", "php", "kotlin", "js", "html");
Collections.sort(list1);
System.out.println(list1);
System.out.println(Collections.min(list1));
System.out.println(Collections.max(list1));
}
这里注意字符串的排序先从首字母的hash值开始排序,如果相同比较第二个字符。