1.定义

Collections是集合类的一个工具类,它提供了一系列静态方法用于对容器中的元素进行排序和搜索等一系列操作。

注:Collection是一个集合接口,而Collections是一个有着操作容器的方法的工具类。

2.方法

(1)reverse(List<?> list) :  使List中的数据发生反转

  List<Integer> list = new ArrayList<>();

         for(int i = 0; i<10; i++ ){
list.add(i);
} System.out.println("反转前的List中数据顺序:");
System.out.println(list); //反转操作
Collections.reverse(list); System.out.println("反转后的List中的数据顺序:");
System.out.println(list);

经过反转后的数据为:

反转前的List中数据顺序:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
反转后的List中的数据顺序:
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

(2)  shuffle(List<> list) :         混淆List中的数据顺序

 Collections.shuffle(list);

得到的数据为:

混淆前的List中数据顺序:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
混淆后的List中的数据顺序:
[0, 6, 8, 2, 5, 9, 1, 3, 7, 4]

(3)sort(List<> list) :      将List中的数据进行排序,使用sort方法可以根据元素的自然顺序 对指定列表按升序进行排序。列表中的所有元素都必须实现 Comparable 接口。此列表内的所有元素都必须是使用指定比较器可相互比较的。当然,我们也可以选择自己构建比较器,来将列表中的元素自己进行排序——>sort(List<> list,Comparator c)

  Collections.sort(list);

我们将上面混淆后的数据再排序后得到的数据:

List中的数据顺序:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
混淆后的List中的数据顺序:
[2, 3, 5, 7, 1, 0, 8, 9, 4, 6]
排序后的List中的数据顺序:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

(4)swap(List<> list, int i, int j)  :   将List中  下标为 i 的数据  与  下标为 j 的数据 进行位置交换

 Collections.swap(list,1,6);

得到的数据为:

List中的数据顺序:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
交换后的List中的数据顺序:
[0, 6, 2, 3, 4, 5, 1, 7, 8, 9]

(5)rotate(List<> list , int i) : 将List中的数据,向右滚动指定长度单位。如果 i 是负数,则向左滚动。

 Collections.rotate(list,2);
Collections.rotate(list,-2);

得到的数据:

List中的数据顺序:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
向右滚动后的List中的数据顺序:
[8, 9, 0, 1, 2, 3, 4, 5, 6, 7]
向左滚动后的List中的数据顺序:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

(6)fill(List<> list,Object o)  : 将List中的全部数据替换为指定的数据o

Collections.fill(list,8);

结果:

List中的数据顺序:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
替换后的List中的数据顺序:
[8, 8, 8, 8, 8, 8, 8, 8, 8, 8]

(7)copy(List<? extends T> dest , List<? extends T> src )  :  用两个参数,一个目标 List 和一个源 List,  将源List的元素拷贝到目标,并覆盖它的内容。目标 List 至少与源一样长。如果它更长,则在目标 List 中的剩余元素不受影响。

 Collections.copy(dest,src);

结果:

dest中的数据顺序:
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 99, 991]
src中的数据顺序:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
替换后的dest中的数据顺序:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 991]

Collections还有很多方法,如min,max,还有线程安全方法等,总之Collections是一个用于操作List集合的工具类,有许多实用的功能。

该文参考了博客:https://www.cnblogs.com/cathyqq/p/5279859.html

最新文章

  1. webix前端架构的项目应用
  2. [原创]java WEB学习笔记108:Spring学习---基于配置文件的形式实现AOP
  3. [WPF]DataGridHyperlinkColumn网址过长TextTrimming无效
  4. Qt图形视图框架公开课资料
  5. WPF ListBox
  6. tomcat运行时候出现java.net.BindException: Address already in use: JVM_Bind错误解决方法
  7. 安卓手机当Mac、Win和Linux外置WIFI网卡
  8. p168习题
  9. 学习练习 java 输入输出流练习2
  10. 【Shell脚本学习20】Shell until循环
  11. Directx 3D编程实例:绘制可变速旋转的三角形
  12. 我和小美的撸码日记(2)之第一个基于MVC+Jqgrid的列表页面
  13. bad interpreter: No such file or directory
  14. Formiko总结整数十进制转换二进制原理
  15. 【MSVC】_invalid_parameter和_invoke_watson
  16. 机器学习基础:(Python)训练集测试集分割与交叉验证
  17. [Codeforces441E]Valera and Number
  18. nginx报错:403 Forbidden 并且访问首页index.php是下载文件的状态
  19. single number和变体
  20. c++中的构造(包括移动),赋值(包括移动),析构详解

热门文章

  1. 【vue】vue全家桶
  2. Jetson TX2(1)ubutu1604--安装Nvidia Linux驱动
  3. python3 json模块
  4. logrotate日志处理
  5. 小程序——返回上个页面触发事件(onUnload)
  6. C语言之概述
  7. Day6 Numerical simulation of optical wave propagation之通过随机介质(如大气湍流)的传播(二)
  8. PHP中的DateTime类
  9. U盘安装CentOS系统、raid5制作以及nohup的使用
  10. kettle表更新/插入更新