JAVA中的Collections 类

文章目录

  • 前言
  • 一、 排序方法 sort() 和 reverseOrder()
    • 1. sort(List<T> list)
    • 2.sort(List<T> list, Comparator<? super T> c)
  • 二、查找方法 max(), min()
    • 1.max(Collection<? extends T> coll)
    • 2.min(Collection<? extends T> coll)
    • 3.max(Collection<? extends T> coll, Comparator<? super T> comp)
  • 三、 填充方法 fill(), copy()
    • 1.fill(List<? super T> list, T obj)
    • 2.copy(List<? super T> dest, List<? extends T> src)
  • 四、反转方法 reverse()
  • 总结


前言

Collections 是 Java 中的一个工具类,位于 java.util 包中,提供了一些静态方法来操作和返回集合框架中的集合对象。它主要用于操作集合对象,如列表、集合和映射等,提供了排序、查找、反转、填充、交换等常见操作。
在这里插入图片描述
Collections和Collection不同,前者是集合的操作类,后者是集合接口

Collections类定义了一系列用于操作集合的静态方法


一、 排序方法 sort() 和 reverseOrder()

注意
实现一个类的对象之间比较大小,该类要实现Comparable接口

并且重写compareTo()方法

1. sort(List list)

将列表中的元素按自然顺序进行排序。适用于元素实现了 Comparable 接口的集合。

List<Integer> list = Arrays.asList(5, 3, 8, 1);
Collections.sort(list);  // 输出:[1, 3, 5, 8]

2.sort(List list, Comparator<? super T> c)

根据提供的比较器 Comparator 对列表进行排序。

List<String> list = Arrays.asList("apple", "banana", "cherry");
Collections.sort(list, (s1, s2) -> s2.compareTo(s1));  // 按逆字典顺序排序

二、查找方法 max(), min()

1.max(Collection<? extends T> coll)

返回集合中的最大元素,要求元素实现 Comparable 接口。

List<Integer> list = Arrays.asList(1, 2, 3, 4);
Integer max = Collections.max(list);  // 输出:4

2.min(Collection<? extends T> coll)

返回集合中的最小元素,要求元素实现 Comparable 接口。

List<Integer> list = Arrays.asList(1, 2, 3, 4);
Integer min = Collections.min(list);  // 输出:1

3.max(Collection<? extends T> coll, Comparator<? super T> comp)

使用自定义的比较器返回最大元素。

List<String> list = Arrays.asList("apple", "banana", "cherry");
String max = Collections.max(list, (s1, s2) -> s1.length() - s2.length());  // 按字符串长度比较

三、 填充方法 fill(), copy()

1.fill(List<? super T> list, T obj)

将列表中的每个元素设置为给定的对象 obj。

List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));
Collections.fill(list, "filled");
System.out.println(list);  // 输出:[filled, filled, filled]

2.copy(List<? super T> dest, List<? extends T> src)

将 src 列表的元素复制到 dest 列表。dest 列表必须至少有和 src 列表一样多的元素空间。


List<String> src = Arrays.asList("a", "b", "c");
List<String> dest = new ArrayList<>(Arrays.asList("x", "y", "z"));
Collections.copy(dest, src);
System.out.println(dest);  // 输出:[a, b, c]

四、反转方法 reverse()

反转列表的元素顺序。

List<Integer> list = Arrays.asList(1, 2, 3, 4);
Collections.reverse(list);
System.out.println(list);  // 输出:[4, 3, 2, 1]

总结

Collections 是 Java 集合框架中非常实用的工具类,它封装了对集合的常见操作,如排序、查找、填充、复制、反转等,使开发者无需重复造轮子,提高了代码的可读性和开发效率。熟练掌握 Collections 的常用方法,是 Java 开发中提升集合处理能力的重要一步。

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

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

相关文章

统计学习方法

一、统计学习方法步骤 得到一个有限的训练数据集合确定学习模型的集合-假设空间确定模型选择的准则-策略实现求解最优模型的算法-算法通过学习方法选择最优模型利用学习的最优模型对新数据进行预测或分析 二、统计学习方法分类 三、统计学习的基本分类&#xff08;监督学习&a…

windows docker-01-desktop install windows10 + wls2 启用

windows10 安装 docker 版本信息确认 需要区分 windows 是 amd64 还是 arm64 powershell 中执行&#xff1a; > echo $env:PROCESSOR_ARCHITECTURE AMD64下载 官方 https://www.docker.com/products/docker-desktop/ 下载 windows amd64 下载好了直接安装。 如何验证…

Elasticsearch集群出现脑裂(Split-Brain)如何排查原因和处理?

Elasticsearch集群出现脑裂(Split-Brain)如何排查原因和处理? 1. 脑裂(Split-Brain)背景 定义:脑裂是指 Elasticsearch 集群由于网络分区(network partition)或其他原因分裂成多个独立的子集群,每个子集群认为自己是主集群,导致不同的子集群可能独立处理请求,造成数…

Apache Ignite 的 Pages Writes Throttling(页面写入节流)

&#x1f31f; 一、什么是 Checkpointing&#xff08;检查点机制&#xff09;&#xff1f; 在 Apache Ignite 中&#xff1a; 数据是先保存在内存中&#xff08;RAM&#xff09;&#xff0c;然后异步写入磁盘。当数据被修改时&#xff0c;它首先被更新在内存中的“页”上&#…

uni-app 学习笔记:使用深度选择器修改第三方库组件的样式

在uni-app中&#xff0c;深度选择器&#xff08;Deep Selector&#xff09;是一个非常重要的概念&#xff0c;它允许父组件穿透样式隔离&#xff0c;从而修改子组件的内部样式。1.什么是uni-app深度选择器深度选择器是一种CSS选择器&#xff0c;用于穿透组件的样式隔离机制&…

物联网IOT平台到底是啥

物联网IOT平台&#xff1a;万物互联的智慧中枢清晨&#xff0c;智能闹钟轻柔唤醒你&#xff0c;咖啡机自动开始冲泡&#xff1b;离家时&#xff0c;空调自动关闭&#xff0c;安防摄像头启动&#xff1b;办公室内&#xff0c;生产线传感器实时回传设备状态&#xff0c;仓库管理系…

MySQL详解二

MySQL详解二索引主键索引唯一索引普通索引组合索引全文索引主键选择约束索引实现B树聚集索引辅助索引索引存储innodb 体系结构最左匹配原则覆盖索引索引下推索引失效索引原则索引 数据库中的数据是以记录为单位的&#xff0c;如果一条一条进行查找&#xff0c;几十万数据就已经…

深度学习中的模型剪枝工具Torch-Pruning的使用

Torch-Pruning(TP)是一个结构化剪枝框架&#xff0c;源码地址&#xff1a;https://github.com/VainF/Torch-Pruning&#xff0c;最新发布版本v1.6.0&#xff0c;License为MIT。 TP支持对各种深度神经网络进行结构化剪枝。与通过掩码将参数设置为零的torch.nn.utils.prune不同&a…

力扣-121.买卖股票的最佳时机

121.买卖股票的最佳时机 class Solution {public int maxProfit(int[] prices) {int min prices[0];int max 0;for (int i 1; i < prices.length; i) {max Math.max(prices[i] - min, max);if (prices[i] < min) {min prices[i];}}return max;} }小结&#xff1a;贪…

lvs原理及实战部署

一、集群与分布式系统 1 集群 1-1概念 集群式架构是将多个相同或相似的节点组合在一起&#xff0c;形成一个逻辑上的 “整体”&#xff0c;对外提供统一的服务或资源。节点之间通常具有较高的同构性&#xff08;硬件、软件配置相似&#xff09;&#xff0c;且紧密协作。 1-2 三…

[Linux]如何設置靜態IP位址?

自從將Ubuntu Server 24.04 LTS作業系統建置在VM上後&#xff0c;逐漸導入一些容器和微服務器並使可由其他Client端來連接使用&#xff0c;其中包含AIGC模型和自動化工作流等服務&#xff0c;例如Open-WebUI和n8n。然而&#xff0c;若VM重新開機或路由器因故斷電等等狀態&#…

【Leecode 随笔】

文章目录题目一&#xff1a;盛最多水的容器题目描述&#xff1a;题目分析&#xff1a;解题思路&#xff1a;示例代码&#xff1a;深入剖析&#xff1a;题目二&#xff1a;最长无重复字符的子串题目描述&#xff1a;题目分析&#xff1a;解题思路&#xff1a;示例代码&#xff1…

Springboot项目应用PageInfo分页问题失效

使用github的pagehelper分页依赖<!-- 分页控件 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.3.0</version><scope>compile</scope></dependency&…

【无标题】标准模型粒子行为与11维拓扑量子色动力学模型严格对应的全面论述

标准模型粒子行为与11维拓扑量子色动力学模型严格对应的全面论述标准模型粒子与拓扑结构的严格对应 mermaid graph LRsubgraph 标准模型粒子A[费米子] --> A1[夸克]A --> A2[轻子]B[玻色子] --> B1[规范玻色子]B --> B2[希格斯]endsubgraph 11维拓扑模型C[实体顶点…

SQL一些关于存储过程和使用的总结

存储过程&#xff1a;数据库里的 "定制工具箱"存储过程就像一个装满工具的箱子&#xff0c;你需要什么功能&#xff0c;就调用对应的工具。它是用 SQL 语句写好的一段程序&#xff0c;存储在数据库里&#xff0c;随时可以调用。创建存储过程 就像在工具箱里放新工具。…

springCloud -- 微服务01

目录 一、认识微服务 1.单体架构 2.微服务 3.SpringCloud 二、微服务拆分 1.服务拆分原则 2.服务调用 3. RestTemplate 三、服务注册和发现 1. 注册中心原理 2. 服务发现 2.1 服务注册 2.2 服务发现 四、OpenFeign 一、认识微服务 1.单体架构 单体架构就是整个项目中所有功能…

Deep Multi-scale Convolutional Neural Network for Dynamic Scene Deblurring 论文阅读

用于动态场景去模糊的深度多尺度卷积神经网络 摘要 针对一般动态场景的非均匀盲去模糊是一个具有挑战性的计算机视觉问题&#xff0c;因为模糊不仅来源于多个物体运动&#xff0c;还来源于相机抖动和场景深度变化。为了去除这些复杂的运动模糊&#xff0c;传统的基于能量优化的…

PDF 拆分合并PDFSam:开源免费 多文件合并 + 按页码拆分 本地处理

各位打工人和学生党们&#xff0c;你知道吗&#xff0c;处理PDF文件简直是咱们的日常噩梦啊&#xff0c;尤其是遇到要合并好几个文件&#xff0c;或者从中抠几页出来的时候&#xff0c;简直头大如斗&#xff01;今天给你们安利一个神仙工具&#xff0c;PDFSam&#xff0c;听我的…

AI产品经理面试宝典第32天:AI+工业场景落地核心问题与应答策略

一、AI+工业落地价值怎么答? 面试官:AI在工业领域能创造哪些核心价值?请用具体案例说明 你的回答: AI在工业领域创造价值的底层逻辑是"数据闭环"。以阿里云ET工业大脑为例,通过采集生产线3000+传感器数据,构建出影响良品率的60个关键变量模型。当数据流经AI…

【09】MFC入门到精通——MFC 属性页对话框的 CPropertyPage类 和 CPropertySheet 类

文章目录九、属性页对话框的类CPropertyPage类 和 CPropertySheet 类。9.1 CPropertyPage 类&#xff08;1&#xff09;构造函数&#xff08;2&#xff09;CancelToClose()函数&#xff08;3&#xff09;SetModified()函数&#xff08;4&#xff09;可重载函数9.2 CPropertyShe…