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. [LeetCode] 7. 整数反转

    题目链接:https://leetcode-cn.com/problems/reverse-integer/ 题目描述: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 ...

  2. Redis入门---字符串类型

    阅读目录 1.keys * 命令 2.判断一个键是否存在(exists key) 3.删除键 4.获取键值的数据类型 5 递增数字(incr) 6.增加指定的整数 (INCRBY) 7.减少指定的整数 ...

  3. postgresql事务

    查看更多教程:http://www.gitbook.net/postgresql/2013080567.html pgsql事务与并发控制 事务与并发控制 数据库几大特性: ACID: Atomici ...

  4. .NET 开源项目 Anet 介绍

    使用 Anet 有一段时间了,已经在我的个人网站(如 bookist.cc)投入使用,目前没有发现什么大问题,所以才敢写篇文章向大家介绍. GitHub 地址:https://github.com/a ...

  5. NIO原理及案例使用

    什么是NIO Java提供了一个叫作NIO(New I/O)的第二个I/O系统,NIO提供了与标准I/O API不同的I/O处理方式.它是Java用来替代传统I/O API(自Java 1.4以来). ...

  6. Oracle普通视图和物化视图的区别

    介绍 物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询, Oracle 都实际上转换为视图SQL语句的查询. ...

  7. 6-3 Articles(a, an, some, the)

    1 Definite and Indifinite articles Indefinite articles: a, an, some Definite article:  the 2 a and t ...

  8. linux python2.x 升级python3.x

    Linux下python升级步骤  Python2 ->Python3 多数情况下,系统自动的Python版本是2.x 或者yum直接安装的也是2.x 但是,现在多数情况下建议使用3.x 那么如 ...

  9. 其它综合-CentOS7 忘记root密码

    CentOS7 忘记root密码 长时间不用的 CentOS 机器再次开机的时候忽然忘记了密码,总不能就重装一台吧,还有好多服务在机器上,于是决定重置root的密码. 如果是已经开启的机器,需要进行关 ...

  10. Monkey参数介绍

    monkey 参数 参数分类 常规类参数 事件类参数 约束类参数 调试类参数 常规类参数 常规类参数包括帮助参数和日志信息参数.帮助参数用于输出Monkey命令使用指导:日志信息参数将日志分为三个级别 ...