Java集合——Collections工具类

Java集合——Collections工具类

摘要:本文主要学习了Collections工具类的常用方法。

概述

Collections工具类主要用来操作集合类,比如List和Set。

常用操作

排序(sort方法)

使用Collections工具类里的sort()方法进行排序,必须满足下列任意一个条件:

第一种是List中的存储的元素实现Comparable接口,重写compareTo()方法。

第二种是在使用sort方法时,传入一个Comparator的实现类,重写compareTo()方法。

测试代码如下:

1 List<Integer> list = new ArrayList<Integer>();
2 list.add(3);
3 list.add(5);
4 list.add(1);
5 System.out.println(list);
6 Collections.sort(list);
7 System.out.println(list);

运行结果如下:

1 [3, 5, 1]
2 [1, 3, 5]

反转(reverse方法)

将集合里元素的顺序进行反转。

测试代码如下:

1 List<Integer> list = new ArrayList<Integer>();
2 list.add(3);
3 list.add(5);
4 list.add(1);
5 System.out.println(list);
6 Collections.reverse(list);
7 System.out.println(list);

运行结果如下:

1 [3, 5, 1]
2 [1, 5, 3]

混排(shuffle方法)

对集合里的元素进行随机排序。

测试代码如下:

1 List<Integer> list = new ArrayList<Integer>();
2 list.add(3);
3 list.add(5);
4 list.add(1);
5 System.out.println(list);
6 Collections.shuffle(list);
7 System.out.println(list);

运行结果如下:

1 [3, 5, 1]
2 [3, 1, 5]

最大(max方法)

查找集合中最大的一个元素。

测试代码如下:

1 List<Integer> list = new ArrayList<Integer>();
2 list.add(3);
3 list.add(5);
4 list.add(1);
5 System.out.println(list);
6 Integer max = Collections.max(list);
7 System.out.println(max);

最小(min方法)

查找集合中最小的一个元素。

测试代码如下:

1 List<Integer> list = new ArrayList<Integer>();
2 list.add(3);
3 list.add(5);
4 list.add(1);
5 System.out.println(list);
6 Integer min = Collections.min(list);
7 System.out.println(min);

查找(binarySearch方法)

查找方法只能调用顺序的集合,返回元素的索引。

测试代码如下:

1 List<Integer> list = new ArrayList<Integer>();
2 list.add(3);
3 list.add(5);
4 list.add(1);
5 System.out.println(list);
6 Integer index = Collections.binarySearch(list, 5);
7 System.out.println(index);

替换(replaceAll方法)

替换指定元素为某元素,若要替换的值存在刚返回true,反之返回false。

1 List<Integer> list = new ArrayList<Integer>();
2 list.add(3);
3 list.add(5);
4 list.add(1);
5 System.out.println(list);
6 Collections.replaceAll(list, 5, 7);
7 System.out.println(list);

操作容器

创建线程安全的List

1 List<Integer> list = Collections.synchronizedList(new ArrayList<Integer>());

创建线程安全的Set

1 Set<Integer> set = Collections.synchronizedSet(new HashSet<Integer>());

创建线程安全的Map

1 Map<String, Integer> map = Collections.synchronizedMap(new HashMap<String, Integer>());
原文地址:https://www.cnblogs.com/shamao/p/11013895.html