Collections是一个包装类,其中包含有各种有关集合操作的静态多态方,比如可以作用在List和Set上,此类不能实例化。

排序

Integer[] array = new Integer[]{3, 10, 4, 0, 2};
List<Integer> integers = Arrays.asList(array);
Collections.sort(integers);
out.println(integers); //[0, 2, 3, 4, 10]
1
2
3
4
在这里借用了Arrays的asList方法,该方法可以将数组转成一个List。这里也只能对封装类型Integer数组调用asList方法,如果是int型的数组调用asList会出现其他问题。可以查考Arrays用法总结。

混排

out.println(integers); //[0, 2, 3, 4, 10]
Collections.shuffle(integers);
out.println(integers); //[0, 3, 10, 2, 4]
1
2
3
反转

out.println(integers); //[0, 3, 10, 2, 4]
Collections.reverse(integers);
out.println(integers); //[3, 0, 4, 2, 10]
1
2
3
填充(覆盖)元素

array = new Integer[]{3, 10, 4, 0, 2};
integers = Arrays.asList(array);
Collections.fill(integers, -1);
out.println(integers); //[-1, -1, -1, -1, -1]
out.println(Arrays.toString(array)); //[-1, -1, -1, -1, -1]
1
2
3
4
5
通过输出可以发现原数组的值也跟着发生了变化,因为是封装类型,所以Integer[]中和List<Integer>中的元素指向的是用一个Integer对象的地址,所以两个会一起变化。

替换元素

array = new Integer[]{3, 10, 4, 4, 4};
integers = Arrays.asList(array);
Collections.replaceAll(integers, 4, -4);
out.println(integers); //[3, 10, -4, -4, -4]
1
2
3
4
拷贝List

out.println(integers); //[3, 10, -4, -4, -4]
List<Integer> integersCopy = new ArrayList<>(); integersCopy.add(1);
integersCopy.add(1);
integersCopy.add(1);
integersCopy.add(1);
integersCopy.add(1);
integersCopy.add(1);
//如果不对List调用add方法,integerCopy还是空的,下面的copy方法会出错
Collections.copy(integersCopy, integers);
out.println(integersCopy); //[3, 10, -4, -4, -4, 1]
1
2
3
4
5
6
7
8
9
10
返回List中的最大值,最小值

array = new Integer[]{3, 10, 4, 0, 2};
integers = Arrays.asList(array);
out.println(integers);
out.println(Collections.min(integers)); //0
out.println(Collections.max(integers)); //10
1
2
3
4
5
源列表中第一次和最后一次出现指定列表的起始位置

Integer[] array1 = new Integer[]{3, 10, 4, 0, 2, 4, 0};
List integers1 = Arrays.asList(array1);
Integer[] array2 = new Integer[]{4, 0};
List integers2 = Arrays.asList(array2);
out.println(Collections.lastIndexOfSubList(integers1, integers2)); //5
out.println(Collections.indexOfSubList(integers1, integers2)); //2
1
2
3
4
5
6
循环移动

out.println(integers); [3, 10, 4, 0, 2]
Collections.rotate(integers, 1); //[2, 3, 10, 4, 0] 依次右移一位
out.println(integers);
Collections.rotate(integers, -2); //[10, 4, 0, 2, 3] 依次左移两位
out.println(integers);
1
2
3
4
5
二分查找,返回所在的下标。没有找到返回负的下标值。

array = new Integer[]{0, 2, 4, 10, 20};
integers = Arrays.asList(array);
out.println(Collections.binarySearch(integers, 4)); //2
out.println(Collections.binarySearch(integers, 9)); //-4
1
2
3
4
指定元素在集合中出现的次数

array = new Integer[]{0, 2, 4, 4, 20};
integers = Arrays.asList(array);
out.println(Collections.frequency(integers, 4)); //2
1
2
3
得到对象的n份拷贝

List<Integer> numbers = new ArrayList<>();
numbers.add(1);
List<List<Integer>> lists = Collections.nCopies(3, numbers);
out.println(lists); //[[1], [1], [1]]
numbers.add(2);
out.println(lists); //[[1, 2], [1, 2], [1, 2]]
1
2
3
4
5
6
Collections.nCopies(n, object)返回一个List对象,该List对象中含有对象object的n份拷贝,然而实际上列表中并没有存储n份拷贝,从中任意取出一个时,得到的是同一个object。

注:collections是静态方法  无需创建对象,直接collections调用方法就可以!

问:collections与collection的区别是什么?

答:collection是操作单列集合的顶层接口,实现类有List与Set

collections是对集合的操作类!

---------------------

原文:https://blog.csdn.net/zhzh402/article/details/79672092

最新文章

  1. JAVA 多线程随笔 (三) 多线程用到的并发容器 (ConcurrentHashMap,CopyOnWriteArrayList, CopyOnWriteArraySet)
  2. Hibernate框架简单应用
  3. javascript日历控件——纯javascript版
  4. checkbox 选中、取值处理
  5. 20160406javaweb JDBC 实例工具类
  6. jQuery Custom Selector JQuery自定义选择器
  7. win7 x64 驱动
  8. JS错误:Uncaught SyntaxError: Unexpected token ILLEGAL
  9. CodeForces 706B Interesting drink
  10. 团队作业8----第二次项目冲刺(Beta阶段) 第七天
  11. 请求服务(RequestService)
  12. Elasticsearch安装使用
  13. ubuntu google chrome 忽略证书错误 -- 解决自签名证书不支持的问题
  14. python学习日记(练习,流程控制+数据结构)
  15. Vue(一)创建第一个Vue程序
  16. eclipse配置Servlet连接Mysql要注意的几个地方
  17. PS(光影魔术手)
  18. 多目标跟踪方法:deep-sort
  19. Java读取properties配置文件时,中文乱码解决方法
  20. 为Eclipse添加C/C++开发工具

热门文章

  1. 7.25 11figting!
  2. 对avalon的类名操作进行升级
  3. Linux 入侵检测
  4. LevelDB Compaction操作
  5. 【总结整理】关于挪车和虚拟号的思考-转载v2ex
  6. asp.net安装指令
  7. static变量和static函数
  8. 监测IIS上网站的连接数
  9. Python深度学习之安装theano(windows)
  10. Golang之方法(自定义类型,struct)