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

集合-Collections工具的更多相关文章

  1. Java集合——Collections工具类

    Java集合——Collections工具类 摘要:本文主要学习了Collections工具类的常用方法. 概述 Collections工具类主要用来操作集合类,比如List和Set. 常用操作 排序 ...

  2. Java中的集合Collections工具类(六)

    操作集合的工具类Collections Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了将集 ...

  3. java 集合Collections 工具类:排序,查找替换。Set、List、Map 的of方法创建不可变集合

    Collections 工具类 Java 提供1个操作 Set List Map 等集合的工具类 Collections ,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了将集合 ...

  4. Java 集合-Collections工具类

    2017-11-05 23:41:53 Collections类 Collections类:Collections类是针对集合进行操作的工具类,都是静态方法. 常用方法: public static ...

  5. 线程高级应用-心得8-java5线程并发库中同步集合Collections工具类的应用及案例分析

    1.  HashSet与HashMap的联系与区别? 区别:前者是单列后者是双列,就是hashmap有键有值,hashset只有键: 联系:HashSet的底层就是HashMap,可以参考HashSe ...

  6. 操作集合的工具类:Collections

    Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类提供了大量方法对集合进行排序.查询和修改等操作,还提供了将集合对象置为不可变.对集合对象实现同步控制等方法 ...

  7. JAVA基础学习之 Map集合、集合框架工具类Collections,Arrays、可变参数、List和Set集合框架什么时候使用等(4)

    package com.itcast.test20140113; import java.util.ArrayList; import java.util.Arrays; import java.ut ...

  8. 操作集合的工具类Collections

    1       操作集合的工具类Collections Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操 ...

  9. Java基础---泛型、集合框架工具类:collections和Arrays

    第一讲     泛型(Generic) 一.概述 1.JDK1.5版本以后出现的新特性.用于解决安全问题,是一个类型安全机制. 2.JDK1.5的集合类希望在定义集合时,明确表明你要向集合中装入那种类 ...

随机推荐

  1. Docker 安装 MySQL

    1. docker search mysql 2.docker pull mysql/mysql-serer 3.mkdir -p ~/mysql/data ~/mysql/logs ~/mysql/ ...

  2. (十二)Deleting Documents

    Deleting a document is fairly straightforward. This example shows how to delete our previous custome ...

  3. Linux中断管理

    CPU和外设之间的交互,或CPU通过轮询机制查询,或外设通过中断机制主动上报. 对大部分外设中断比轮询效率高,但比如网卡驱动采取轮询比中断效率高. 这里重点关注ARM+Linux组合下中断管理,从底层 ...

  4. openstack搭建之-nova配置(10)

    一. base节点设置数据库 mysql -u root -proot CREATE DATABASE nova_api; CREATE DATABASE nova; CREATE DATABASE ...

  5. python dlib opencv 人脸68点特征检测

    不得不感慨,现在现成的东西太多了,直接拿来用就行了 dlib安装(指定版本安装,避免踩坑) pip dlib中训练好的文件http://dlib.net/files/shape_predictor_6 ...

  6. [模板] 后缀自动机&&后缀树

    后缀自动机 后缀自动机是一种确定性有限状态自动机, 它可以接收字符串\(s\)的所有后缀. 构造, 性质 翻译自毛子俄罗斯神仙的博客, 讲的很好 后缀自动机详解 - DZYO的博客 - CSDN博客 ...

  7. 五、Java多人博客系统-2.0版本-数据库设计

    数据库设计表如下:文章类别表.文章表.评论表.留言表. 文章列表表:存放文章类别,首页菜单生成也是从这个表取的. 文章表:存放文章标题.发表时间.内容等信息. 评论表:文章评论内容. 留言表:用户发表 ...

  8. LOJ2340 [WC2018] 州区划分 【FMT】【欧拉回路】

    题目分析: 这题是WC的题??? 令 $g[S] = (\sum_{x \in S}w_x)^p$ $h[S] = g[S]$如果$S$不是欧拉回路 $d[S] = \frac{f[S]}{g[All ...

  9. jzoj6099. 【GDOI2019模拟2019.4.1】Dist

    题目链接:https://jzoj.net/senior/#main/show/6099 考虑直接统计某个点到其它所有点的距离和 我们先把整个团当成一个点建图,处理出任意两个团之间的距离\(dis(i ...

  10. SpringMvc的自动装箱和GET请求参数可以为自定义对象的思考

    在我的概念里边,GET请求需要加上注解@RequestParam,然后它的参数类型只能是 基本数据类型 或者 基本数据类型的包装类,比如:@RequestParam String name(默认是必传 ...