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. Linux系统中常见的目录名称以及相应内容

    目录名称 应放置文件的内容 /boot 开机所需文件——内核.开机菜单以及所需配置文件等等 /dev 以文件形式存放任何设备与接口 /etc 配置文件 /home 用户家目录 /bin 存放单用户模式 ...

  2. Hexo + GitEE 搭建、备份、恢复、多终端

    Hexo 是一个快速.简洁且高效的博客框架.Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页. Hexo 是使用的比较多的博客框架了,我也尝试自己搭 ...

  3. iOS开发基础-UIScrollView基础

     普通的 UIView 不具备滚动功能,不能显示过多的内容.UIScrollView 是一个能够滚动的视图控件,可用来展示大量的内容.  UIScrollView 的简单使用: 1)将需要展示的内容添 ...

  4. 基于 HTML5 结合互联网+的电力接线图

    前言 “互联网+”思维让数据的搜集和获取更加便捷,并且随着大数据的深度开发和应用,数据分析预测对于提升用户体验有非常重要的价值,同时也为不同行业.不同领域的合作提供了更广阔的空间.传统的发电企业是一个 ...

  5. PHP(SentCMS)网站 “新手”捉虫记

    我拖着疲惫的身躯,努力打开眼皮在写...... 昨晚弄到12点,我感觉应该弄好了. 故事开头是这样的:我呢朋友有个网站需要开发,我当时没时间就包给外面的公司了,由于外面公司维护费用比较贵. 那么网站维 ...

  6. docker(二) windows10下安装docker

    官方安装文档: https://docs.docker.com/docker-for-windows/install/ https://docs.docker.com/docker-for-windo ...

  7. 爬zol村壁纸篇

    # -*- coding: utf-8 -*- # @Author : Jackzz import requests,os from pyquery import PyQuery as pq def ...

  8. asp.net core 中间件粗解

    中间件 中间件在asp.net core中非常重要,它用来处理httpcontext.而httpcontext封装了请求和响应.也就是说,中间件是用来处理请求和响应的. 本质上,中间件被封装到了IAp ...

  9. 面试题(一续Spring)

    9.Spring体系结构和jar用途 参考https://blog.csdn.net/sunchen2012/article/details/53939253 spring官网给出了一张spring3 ...

  10. Linux下开启和关闭Telnet服务

    telnet与ssh相比,安全性能并不高,但是在SSH版本升级或者其他的情况下还是需要开启这一服务. linux提供服务是由运行在后台的守护程序(daemon)来执行的,telnet服务是由xinet ...