1       操作集合的工具类Collections

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

1.1     排序操作

  1. static void reverse(List<?> list): 反转指定列表中元素的顺序。
  2. static void shuffle(List<?> list): 使用默认随机源对指定列表进行置换。
  3. static <T extends Comparable<? super T>> void  sort(List<T> list): 根据元素的自然顺序 对指定列表按升序进行排序。
  4. static <T> void sort(List<T> list, Comparator<? super T> c): 根据指定比较器产生的顺序对指定列表进行排序。
  5. static void swap(List<?> list, int i, int j): 在指定列表的指定位置处交换元素。
  6. static void rotate(List<?> list, int distance):根据指定的距离轮换指定列表中的元素。

ArrayList nums = new ArrayList();

nums.add(2);

nums.add(-5);

nums.add(3);

nums.add(0);

System.out.println( nums );

Collections.reverse(nums);

System.out.println(nums);

Collections.sort(nums);

System.out.println( nums );

Collections.shuffle(nums);

System.out.println( nums );

1.2     查找、替换操作

  1. static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key):使用二分搜索法搜索指定列表,以获得指定对象。
  2. static <T extends Object & Comparable<? super T>> T  max(Collection<? extends T> coll): 根据元素的自然顺序,返回给定 collection 的最大元素。
  3. static <T> T  max(Collection<? extends T> coll, Comparator<? super T> comp): 根据指定比较器产生的顺序,返回给定 collection 的最大元素。
  4. static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll):根据元素的自然顺序 返回给定 collection 的最小元素。
  5. static <T> T  min(Collection<? extends T> coll, Comparator<? super T> comp):根据指定比较器产生的顺序,返回给定 collection 的最小元素。
  6. static <T> void fill(List<? super T> list, T obj):  使用指定元素替换指定列表中的所有元素。
  7. static int frequency(Collection<?> c, Object o):返回指定 collection 中等于指定对象的元素数。
  8. static int indexOfSubList(List<?> source, List<?> target):返回指定源列表中第一次出现指定目标列表的起始位置;如果没有出现这样的列表,则返回 -1。
  9. static int lastIndexOfSubList(List<?> source, List<?> target):返回指定源列表中最后一次出现指定目标列表的起始位置;如果没有出现这样的列表,则返回 -1。
  10. static <T> boolean replaceAll(List<T> list, T oldVal, T newVal): 使用另一个值替换列表中出现的所有某一指定值。

1.3     同步控制

Collection c = Collections.synchronizedCollection(

new ArrayList()

);

List list = Collections.synchronizedList(new ArrayList());

Set s = Collections.synchronizedSet(new HashSet());

Map m = Collections.synchronizedMap(new HashMap());

1.4     设置不可变集合

Collections提供了如下三个类方法来返回一个不可变的集合:

  1. emptyXXX():返回一个空的、不可变的集合对象,此处的集合即可以是List,也可以是Set,还可以是Map。
  2. singletonXXX():返回一个只包含指定对象的,不可变的集合对象,此处的集合即可以是List,也可以是Set,还可以是Map。
  3. unmodifiableXxx():返回指定集合对象的不可变试图,此处的集合即可以是List,也可以是Set,还可以是Map。

转载于:https://www.cnblogs.com/haiwei_sun/p/3393507.html

操作集合的工具类Collections相关推荐

  1. java 集合操作工具包_java之操作集合的工具类--Collections

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

  2. Java——操作集合的工具类:Collections

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

  3. Java中集合(七)Collections 一个操作集合的工具类

    public static void main(String[] args) {//asList 以列表的形式操作List<String> list = Arrays.asList(&qu ...

  4. Java集合(8)--集合工具类Collections

    Collections 是一个操作 Set.List 和 Map 等集合的工具类. Collections 中提供了一系列静态的方法对集合元素进行排序.查询和修改等操作,还提供了对集合对象设置不可变. ...

  5. Java集合工具类Collections(一)

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

  6. (10)Java泛型-Map集合-集合框架工具类-可变参数-静态导入

    -- 部分1.5新特性Java泛型-Map集合-集合框架工具类 泛型 概述: JDK1.5版本以后出现的新特性,用于解决安全问题,是一个类型安全机制. 对于泛型可以这样理解: 没有使用泛型时,只要是对 ...

  7. java redis remove_最全的Java操作Redis的工具类

    RedisUtil 当前版本:1.1 增加更全的方法,对以前的部分方法进行了规范命名,请放心替换成新版本. 介绍 最全的Java操作Redis的工具类,使用StringRedisTemplate实现, ...

  8. java工具类与集合类_JAVA学习---集合和工具类

    1.集合概述 总称,包含多个具体的类 1.1集合和数组的比较 数组 集合 大小固定 动态变化 效率较高.只存储原生数据类型 效率稍低.可以存储引用类型 只能存放单一数据类型 可以存储多种数据类型(除泛 ...

  9. 【Java 代码实例 13】Java操作pdf的工具类itext

    目录 一.什么是iText? 二.引入jar 1.项目要使用iText,必须引入jar包 2.输出中文,还要引入下面```itext-asian.jar```包 3.设置pdf文件密码,还要引入下面` ...

最新文章

  1. Luogu P4178 Tree (点分治 + 树状数组)
  2. VLC播放器web插件接口(Part2)
  3. c语言注释部分两侧的分界符号分别是,c语言中界定注释的符号分别是什么?
  4. LeetCode刷题实战(13):Roman to Integer
  5. LeetCode 1637. 两点之间不包含任何点的最宽垂直面积
  6. 草莓甜品海报设计,甜出画面,受得住诱惑么?
  7. SAP License:MM根据收货自动创建采购订单
  8. 谁会最先陨落:Google,苹果,Facebook,还是微软?
  9. 无法启动 nexus 服务,错误1067:进程意外终止。java环境变量设置技巧。
  10. pycharm注释、查看函数用法快捷键
  11. 微信批量扫码进群系统
  12. 蓝桥杯 Java B组省赛真题【2017】
  13. git 和gitHup工具笔记的详细教程
  14. 解决在mysql官网下载慢的问题
  15. 《天涯明月刀》服务器端3D引擎设计与开发
  16. blockchain-explorer(pg版) 区块浏览器部署及配置详解
  17. 如何释放计算机内存吗,Win7如何释放内存?三招帮你将电脑中的垃圾全部清理掉!...
  18. 「eBay大赛专访特辑」第一轮淘汰在即!已经有同学出单$2500!
  19. Linux定时任务 crontab(-l -e)、at、batch
  20. 网页状态码(HTTP状态码)。

热门文章

  1. MySql 应该选择普通索引 还是唯一 索引???
  2. Flutter StreamController 异步通信、Stream 流异步通信
  3. iOS把UIImage保存到沙盒目录下以及少盒目录概述
  4. notejs环境搭建
  5. 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题1---cvNamedWindow调用报错的问题...
  6. JavaScript模板引擎Template.js基本使用详解
  7. JS-节点增删改-document-HTML DOM-事件
  8. 【Vue实例四】利用Vue组件实现添加评论的功能
  9. OpenCV3学习(8.2)直方图相似度比较compareHist函数与EMD距离
  10. Promise(异步处理-实现)