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
英文地址,請注明出處:http://en.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…