JAVA小知识24:集合工具类Collections

一、Collections简介

Collections 是 Java 中的一个实用类,位于 java.util 包中,提供了许多静态方法,用于操作或返回集合的各种操作。它包含的这些方法大大简化了对集合的常见操作,提供了排序、搜索、随机化、同步化等功能。

二、成员方法

方法说明
Collections.addAll(Collection<? super T> c, T... elements)将所有指定元素添加到指定集合中。
Collections.sort(List<T> list)根据元素的自然顺序对指定列表按升序进行排序。
Collections.sort(List<T> list, Comparator<? super T> c)根据指定比较器产生的顺序对列表进行排序。
Collections.shuffle(List<?> list)使用默认随机源随机排列指定的列表。
Collections.shuffle(List<?> list, Random rnd)使用指定的随机源随机排列指定的列表。
Collections.reverse(List<?> list)反转指定列表中元素的顺序。
Collections.swap(List<?> list, int i, int j)交换指定列表中指定位置的元素。
Collections.max(Collection<? extends T> coll)根据元素的自然顺序返回给定集合中的最大元素。
Collections.max(Collection<? extends T> coll, Comparator<? super T> comp)根据指定比较器产生的顺序,返回给定集合中的最大元素。
Collections.min(Collection<? extends T> coll)根据元素的自然顺序返回给定集合中的最小元素。
Collections.min(Collection<? extends T> coll, Comparator<? super T> comp)根据指定比较器产生的顺序,返回给定集合中的最小元素。
Collections.frequency(Collection<?> c, Object o)返回指定集合中等于指定对象的元素的次数。
Collections.disjoint(Collection<?> c1, Collection<?> c2)如果两个指定集合没有相同的元素,则返回 true
Collections.copy(List<? super T> dest, List<? extends T> src)将源列表中的所有元素复制到目标列表中。
Collections.replaceAll(List<T> list, T oldVal, T newVal)使用另一个值替换列表中所有出现的指定值。
Collections.fill(List<? super T> list, T obj)用指定的元素替换指定列表中的所有元素。
Collections.binarySearch(List<? extends Comparable<? super T>> list, T key)使用二分搜索法搜索指定列表,以获得指定对象。
Collections.binarySearch(List<? extends T> list, T key, Comparator<? super T> c)使用指定的比较器对指定列表进行二分搜索,以获得指定对象。
Collections.unmodifiableCollection(Collection<? extends T> c)返回指定集合的不可修改视图。
Collections.unmodifiableList(List<? extends T> list)返回指定列表的不可修改视图。
Collections.unmodifiableMap(Map<? extends K, ? extends V> m)返回指定映射的不可修改视图。
Collections.unmodifiableSet(Set<? extends T> s)返回指定集合的不可修改视图。
Collections.synchronizedCollection(Collection<T> c)返回由指定集合支持的同步(线程安全)集合。
Collections.synchronizedList(List<T> list)返回由指定列表支持的同步(线程安全)列表。
Collections.synchronizedMap(Map<K, V> m)返回由指定映射支持的同步(线程安全)映射。
Collections.synchronizedSet(Set<T> s)返回由指定集合支持的同步(线程安全)集合。
Collections.singletonList(T o)返回一个只包含指定对象的不可变列表。
Collections.singleton(T o)返回一个只包含指定对象的不可变集合。
Collections.singletonMap(K key, V value)返回一个只包含指定键值映射关系的不可变映射。
Collections.emptyList()返回一个空的不可变列表。
Collections.emptySet()返回一个空的不可变集合。
Collections.emptyMap()返回一个空的不可变映射。
Collections.nCopies(int n, T o)返回由指定对象的 n 个副本组成的不可变列表。
Collections.reverseOrder()返回一个比较器,它强制执行自然顺序的反转。
Collections.reverseOrder(Comparator<T> cmp)返回一个比较器,它强制执行指定比较器的顺序的反转。

三、重要成员方法详解

方法说明
Collections.addAll(Collection<? super T> c, T... elements)将所有指定元素添加到指定集合中。
Collections.shuffle(List<?> list)使用默认随机源随机排列指定的列表。
Collections.sort(List<T> list)根据元素的自然顺序对指定列表按升序进行排序。
Collections.sort(List<T> list, Comparator<? super T> c)根据指定比较器产生的顺序对列表进行排序。
Collections.binarySearch(List<? extends Comparable<? super T>> list, T key)使用二分搜索法搜索指定列表,以获得指定对象。
Collections.copy(List<? super T> dest, List<? extends T> src)将源列表中的所有元素复制到目标列表中。
Collections.swap(List<?> list, int i, int j)交换指定列表中指定位置的元素。
Collections.max(Collection<? extends T> coll)根据元素的自然顺序返回给定集合中的最大元素。
Collections.min(Collection<? extends T> coll)根据元素的自然顺序返回给定集合中的最小元素。
Collections.fill(List<? super T> list, T obj)用指定的元素替换指定列表中的所有元素。
// `Collections.addAll(Collection<? super T> c, T... elements)`
// 将所有指定元素添加到指定集合中。
List<String> list = new ArrayList<>();
Collections.addAll(list, "Apple", "Banana", "Cherry");
System.out.println("List after addAll: " + list); // [Apple, Banana, Cherry]// `Collections.shuffle(List<?> list)`
// 使用默认随机源随机排列指定的列表。
Collections.shuffle(list);
System.out.println("List after shuffle: " + list);// `Collections.sort(List<T> list)`
// 根据元素的自然顺序对指定列表按升序进行排序。
Collections.sort(list);
System.out.println("List after sort: " + list); // [Apple, Banana, Cherry]// `Collections.sort(List<T> list, Comparator<? super T> c)`
// 根据指定比较器产生的顺序对列表进行排序。
Collections.sort(list, Comparator.reverseOrder());
System.out.println("List after reverse sort: " + list); // [Cherry, Banana, Apple]// `Collections.binarySearch(List<? extends Comparable<? super T>> list, T key)`
// 使用二分搜索法搜索指定列表,以获得指定对象。
int index = Collections.binarySearch(list, "Banana");
System.out.println("Index of 'Banana': " + index);// `Collections.copy(List<? super T> dest, List<? extends T> src)`
// 将源列表中的所有元素复制到目标列表中。
List<String> destList = new ArrayList<>(Arrays.asList(new String[list.size()]));
Collections.copy(destList, list);
System.out.println("Destination list after copy: " + destList); // [Cherry, Banana, Apple]// `Collections.swap(List<?> list, int i, int j)`
// 交换指定列表中指定位置的元素。
Collections.swap(list, 0, 1);
System.out.println("List after swap: " + list); // [Banana, Cherry, Apple]// `Collections.max(Collection<? extends T> coll)`
// 根据元素的自然顺序返回给定集合中的最大元素。
String max = Collections.max(list);
System.out.println("Max element: " + max); // Cherry// `Collections.min(Collection<? extends T> coll)`
// 根据元素的自然顺序返回给定集合中的最小元素。
String min = Collections.min(list);
System.out.println("Min element: " + min); // Apple// `Collections.fill(List<? super T> list, T obj)`
// 用指定的元素替换指定列表中的所有元素。
Collections.fill(list, "Kiwi");
System.out.println("List after fill: " + list); // [Kiwi, Kiwi, Kiwi]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855875.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#的Switch语句3(如何为一段代码应用多个case标签)

文章目录 上一篇文章中断函数执行堆叠caseswitch中实用的字符串函数将字符串转换为小写 switch例子 上一篇文章 C#的Switch语句2 中断函数执行 switch语句内部可以使用return语句&#xff0c;这为控制程序流程和函数返回值提供了一种直接的方式。 当在switch语句块中遇到re…

状态机和行为树的搭配使用

下面是一个完整的TypeScript代码示例&#xff0c;展示了如何将状态机和行为树结合起来使用。状态机控制智能体的状态&#xff0c;行为树负责智能体的智能决策。在执行决策前&#xff0c;行为树会检查状态机的当前状态。 // 定义状态枚举 enum BodyState {IDLE,MOVING,ATTACKIN…

asyncua模块中OPC UA的ua.Variant如何表示字典?

asyncua 模块中OPC UA的ua.Variant如何表示字典&#xff1f; 解决办法&#xff1a;使用json将字典转成string形式 文心一言给出的解决方法如下&#xff1a; 在 OPC UA (OLE for Process Control Unified Architecture) 中&#xff0c;ua.Variant 是一个用于表示各种数据类型…

CleanShot X for Mac v4.7 屏幕截图录像工具(保姆级教程,小白轻松上手,简单易学)

Mac分享吧 文章目录 一、准备工作二、部分特有功能效果1、截图软件的普遍常用功能&#xff08;画框、箭头、加文字等&#xff09;都具备&#xff0c;不再详细介绍2、ABCD、1234等信息标注&#xff08;每按一下鼠标&#xff0c;即各是A、B、C、D...等&#xff09;3、截图更换背…

SD-WAN组网如何帮助企业降低网络成本?

企业在构建IT网络时&#xff0c;常常面临节省费用和提升效益的挑战。IT开销主要包括设备、网络和维护成本。利用OgCloud的SD-WAN组网方案&#xff0c;企业可以有效地应对这些问题。 企业专线网络的高成本问题 企业专线的费用较高&#xff0c;而且数据不能同时在多条专线上传输。…

【linux】Valgrind工具集详解(十六):交叉编译、移植到arm(失败)

1、源码下载 官网:https://valgrind.org/ 源码:https://valgrind.org/downloads/current.html 2、配置 ./configure CC=arm-linux-gnueabihf-gcc \CXX=arm-linux-gnueabihf-g++ \AR=arm-linux-gnueabihf-ar \--host=arm-linux-gnueabihf \--pr

Postman如何在本地测试服务接口

项目架构及背景&#xff1a; 网关微服务多个业务微服务 服务部署在阿里云上&#xff0c;文件服务器用的是OSS。配置参数用Nacos进行统一管理。通过构建docker镜像包部署各业务微服务以及网关服务。 需求&#xff1a; 某一个业务微服务中开发了若干接口&#xff0c;需要在本地…

辐射神经场(NeRF, Neural Radiance Fields)

辐射神经场&#xff08;NeRF, Neural Radiance Fields&#xff09; 辐射神经场&#xff08;NeRF, Neural Radiance Fields&#xff09;是一种基于神经网络的方法&#xff0c;用于从二维图像合成高质量的三维场景。这一方法由Ben Mildenhall等人在2020年提出&#xff0c;利用多…

如何使用Indicator-Intelligence收集与威胁情报相关的域名和IPv4地址

关于Indicator-Intelligence Indicator-Intelligence是一款针对威胁情报的强大数据收集工具&#xff0c;该工具可以帮助广大研究人员通过威胁情报活动中生成的静态文件来查找与威胁行为相关的域名和IPv4地址。 需要注意的是&#xff0c;请在目标组织授权后再使用该工具进行安…

IFM易福门SV7500SV4200涡街流量计型号都是进口的。

IFM易福门SV7500SV4200涡街流量计型号都是进口的。工程余料。

数据质量管理-规范性管理

数据质量管理简介 数据质量管理是一个持续性的管理动作&#xff0c;有些人在做数据质量管理的时候会陷入一步到位的误区&#xff0c;想要通过一个工具、平台&#xff0c;或者一套质检规则就完成整体的数据质量管理&#xff0c;而实际数据质量管理从数据接入的那一刻就需要介入…

063、Python 位置参数和命名关键字参数

在定义一个带参函数时&#xff0c;我们可以定义参数为位置参数或命名关键字参数。它们在函数定义和调用时有一些区别。 1、位置参数&#xff1a; 位置参数是最常见的参数类型&#xff0c;它们按照定义时的顺序进行传递。在函数定义中&#xff0c;参数按顺序声明&#xff0c;调…

react钩子函数用法(useState、useEffect、useContext)

useState useState 是 React Hooks API 中的一个函数&#xff0c;它允许你在函数组件中添加局部状态。通过 useState&#xff0c;函数组件可以像类组件一样拥有和管理自己的状态&#xff0c;从而使得函数组件更加动态和可交互。 useState 函数接受一个初始状态作为参数&#…

热门常用在线免费工具

图片&绘图 免费且易于使用的在线PDF工具 nullhttps://tools.pdf24.org/zh/免费的在线图片压缩工具 TinyPNG – Compress WebP, PNG and JPEG images intelligentlyFree online image compressor for faster websites! Reduce the file size of your WEBP, JPEG, and PNG…

互联网应用主流框架整合之SpingMVC运转逻辑及高级应用

Spring MVC处理器的执行过程 在SpringMVC的流程中&#xff0c;它会把控制器的方法封装为处理器(Handler)&#xff0c;为了更加灵活&#xff0c;SpringMVC还提供了处理器的拦截器&#xff0c;从而形成了一条包括处理器和拦截器的执行链&#xff0c;即HandlerExecutionChain&…

第21篇 Intel FPGA Monitor Program的使用<四>

Q&#xff1a;如何编译运行创建好的Intel FPGA Monitor Program工程呢&#xff1f; A&#xff1a;上一篇的Nios II汇编语言简易应用程序创建完成后&#xff0c;点击Intel FPGA Monitor Program的Action-->Compile即编译程序&#xff0c;在Info&Errors区域显示编译结果…

Python 实现密码规则验证

完整的密码规则说明 为了确保密码的安全性,您的密码需要符合以下规则: 至少包含一个数字:0-9 至少包含一个特殊字符:如 !@#$%^&*()_=[]{}|;:",.<>?/~ 至少包含一个大写字母:A-Z 至少包含一个小写字母:a-z 在密码规则中,特殊字符通常是指除字母和数字之…

[Vulnhub] BrainPan BOF缓冲区溢出+Man权限提升

信息收集 Server IP AddressPorts Open192.168.8.105TCP: $ nmap -p- 192.168.8.105 -sC -sV -Pn --min-rate 1000 Starting Nmap 7.92 ( https://nmap.org ) at 2024-06-10 04:20 EDT Nmap scan report for 192.168.8.105 (192.168.8.105) Host is up (0.0045s latency). N…

XTDrone-多机仿真-配置教程

启动python脚本生成多机launch文件 cd ~/XTDrone/coordination/launch_generator python3 generator.py将生成出来的launch文件复制到PX4固件的launch文件夹 cp ~/XTDrone/coordination/launch_generator/multi_vehicle.launch ~/PX4_Firmware/launch/启动多机PX4仿真 cd ~/…

MyBatis框架基础

文章目录 1 MyBatis概述2 MyBatis入门2.1 相关依赖2.2 properties配置文件2.3 预编译SQL 3 基本操作3.1 新增操作3.2 删除操作3.3 更新操作3.4 查询操作 4 动态SQL4.1 XML映射文件4.2 if/set/where标签4.3 foreach标签4.4 sql/include标签 5 参考资料 1 MyBatis概述 MyBatis是…