操作集合的工具类Collections
1 操作集合的工具类Collections
Java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了将集合对象设置为不可变、对集合对象实现同步控制等方法。
1.1 排序操作
- static void reverse(List<?> list): 反转指定列表中元素的顺序。
- static void shuffle(List<?> list): 使用默认随机源对指定列表进行置换。
- static <T extends Comparable<? super T>> void sort(List<T> list): 根据元素的自然顺序 对指定列表按升序进行排序。
- static <T> void sort(List<T> list, Comparator<? super T> c): 根据指定比较器产生的顺序对指定列表进行排序。
- static void swap(List<?> list, int i, int j): 在指定列表的指定位置处交换元素。
- 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 查找、替换操作
- static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key):使用二分搜索法搜索指定列表,以获得指定对象。
- static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll): 根据元素的自然顺序,返回给定 collection 的最大元素。
- static <T> T max(Collection<? extends T> coll, Comparator<? super T> comp): 根据指定比较器产生的顺序,返回给定 collection 的最大元素。
- static <T extends Object & Comparable<? super T>> T min(Collection<? extends T> coll):根据元素的自然顺序 返回给定 collection 的最小元素。
- static <T> T min(Collection<? extends T> coll, Comparator<? super T> comp):根据指定比较器产生的顺序,返回给定 collection 的最小元素。
- static <T> void fill(List<? super T> list, T obj): 使用指定元素替换指定列表中的所有元素。
- static int frequency(Collection<?> c, Object o):返回指定 collection 中等于指定对象的元素数。
- static int indexOfSubList(List<?> source, List<?> target):返回指定源列表中第一次出现指定目标列表的起始位置;如果没有出现这样的列表,则返回 -1。
- static int lastIndexOfSubList(List<?> source, List<?> target):返回指定源列表中最后一次出现指定目标列表的起始位置;如果没有出现这样的列表,则返回 -1。
- 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提供了如下三个类方法来返回一个不可变的集合:
- emptyXXX():返回一个空的、不可变的集合对象,此处的集合即可以是List,也可以是Set,还可以是Map。
- singletonXXX():返回一个只包含指定对象的,不可变的集合对象,此处的集合即可以是List,也可以是Set,还可以是Map。
- unmodifiableXxx():返回指定集合对象的不可变试图,此处的集合即可以是List,也可以是Set,还可以是Map。
转载于:https://www.cnblogs.com/haiwei_sun/p/3393507.html
操作集合的工具类Collections相关推荐
- java 集合操作工具包_java之操作集合的工具类--Collections
Collections是一个操作Set.List和Map等集合的工具类. Collections中提供了大量方法对集合元素进行排序.查询和修改等操作,还提供了对集合对象设置不可变.对集合对象实现同步控 ...
- Java——操作集合的工具类:Collections
Java 提供了一个操作 Set .List 和 Map 等集合的工具类 :Collections,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操作 转载于:https://www.cnb ...
- Java中集合(七)Collections 一个操作集合的工具类
public static void main(String[] args) {//asList 以列表的形式操作List<String> list = Arrays.asList(&qu ...
- Java集合(8)--集合工具类Collections
Collections 是一个操作 Set.List 和 Map 等集合的工具类. Collections 中提供了一系列静态的方法对集合元素进行排序.查询和修改等操作,还提供了对集合对象设置不可变. ...
- Java集合工具类Collections(一)
Collections Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操作,还提供将集合对象设置为不可变 ...
- (10)Java泛型-Map集合-集合框架工具类-可变参数-静态导入
-- 部分1.5新特性Java泛型-Map集合-集合框架工具类 泛型 概述: JDK1.5版本以后出现的新特性,用于解决安全问题,是一个类型安全机制. 对于泛型可以这样理解: 没有使用泛型时,只要是对 ...
- java redis remove_最全的Java操作Redis的工具类
RedisUtil 当前版本:1.1 增加更全的方法,对以前的部分方法进行了规范命名,请放心替换成新版本. 介绍 最全的Java操作Redis的工具类,使用StringRedisTemplate实现, ...
- java工具类与集合类_JAVA学习---集合和工具类
1.集合概述 总称,包含多个具体的类 1.1集合和数组的比较 数组 集合 大小固定 动态变化 效率较高.只存储原生数据类型 效率稍低.可以存储引用类型 只能存放单一数据类型 可以存储多种数据类型(除泛 ...
- 【Java 代码实例 13】Java操作pdf的工具类itext
目录 一.什么是iText? 二.引入jar 1.项目要使用iText,必须引入jar包 2.输出中文,还要引入下面```itext-asian.jar```包 3.设置pdf文件密码,还要引入下面` ...
最新文章
- Luogu P4178 Tree (点分治 + 树状数组)
- VLC播放器web插件接口(Part2)
- c语言注释部分两侧的分界符号分别是,c语言中界定注释的符号分别是什么?
- LeetCode刷题实战(13):Roman to Integer
- LeetCode 1637. 两点之间不包含任何点的最宽垂直面积
- 草莓甜品海报设计,甜出画面,受得住诱惑么?
- SAP License:MM根据收货自动创建采购订单
- 谁会最先陨落:Google,苹果,Facebook,还是微软?
- 无法启动 nexus 服务,错误1067:进程意外终止。java环境变量设置技巧。
- pycharm注释、查看函数用法快捷键
- 微信批量扫码进群系统
- 蓝桥杯 Java B组省赛真题【2017】
- git 和gitHup工具笔记的详细教程
- 解决在mysql官网下载慢的问题
- 《天涯明月刀》服务器端3D引擎设计与开发
- blockchain-explorer(pg版) 区块浏览器部署及配置详解
- 如何释放计算机内存吗,Win7如何释放内存?三招帮你将电脑中的垃圾全部清理掉!...
- 「eBay大赛专访特辑」第一轮淘汰在即!已经有同学出单$2500!
- Linux定时任务 crontab(-l -e)、at、batch
- 网页状态码(HTTP状态码)。
热门文章
- MySql 应该选择普通索引 还是唯一 索引???
- Flutter StreamController 异步通信、Stream 流异步通信
- iOS把UIImage保存到沙盒目录下以及少盒目录概述
- notejs环境搭建
- 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题1---cvNamedWindow调用报错的问题...
- JavaScript模板引擎Template.js基本使用详解
- JS-节点增删改-document-HTML DOM-事件
- 【Vue实例四】利用Vue组件实现添加评论的功能
- OpenCV3学习(8.2)直方图相似度比较compareHist函数与EMD距离
- Promise(异步处理-实现)