List 接口中的 sort 和 forEach 方法

List 接口中的 sort 和 forEach 方法是 Java 8 引入的兩個非常實用的函數,分別用于 排序 和 遍歷 列表中的元素。以下是它們的詳細介紹和用法:

  1. sort 函數

功能

對列表中的元素進行排序。
默認使用自然順序(如數字從小到大,字符串按字典序),也可以通過自定義比較器(Comparator)指定排序規則。
方法簽名
void sort(Comparator<? super E> c)
參數Comparator<? super E> c:用于指定排序規則的比較器。如果為 null,則使用元素的自然順序。
示例:
默認排序(自然順序)

List<Integer> numbers = Arrays.asList(5, 3, 8, 1);
numbers.sort(null); // 使用自然順序
System.out.println(numbers); // 輸出: [1, 3, 5, 8]

自定義排序(使用比較器)

List<String> words = Arrays.asList("Java", "Python", "C++");
words.sort((s1, s2) -> s1.length() - s2.length()); // 按字符串長度排序
System.out.println(words); // 輸出: [C++, Java, Python]

使用 Comparator 工具類

List<String> words = Arrays.asList("Java", "Python", "C++");
words.sort(Comparator.comparingInt(String::length)); // 按字符串長度排序
System.out.println(words); // 輸出: [C++, Java, Python]
  1. forEach 函數
    功能:
    遍歷列表中的每個元素,并對每個元素執行指定的操作。
    通常用于簡化遍歷邏輯。
    方法簽名
    void forEach(Consumer<? super E> action)
    參數Consumer<? super E> action:對每個元素執行的操作,通常是一個 Lambda 表達式或方法引用。
    示例
    遍歷并打印元素
List<String> words = Arrays.asList("Java", "Python", "C++");
words.forEach(word -> System.out.println(word));
// 輸出:
// Java
// Python
// C++

使用方法引用

List<String> words = Arrays.asList("Java", "Python", "C++");
words.forEach(System.out::println); // 使用方法引用
// 輸出:
// Java
// Python
// C++

遍歷并修改元素

List<String> words = Arrays.asList("Java", "Python", "C++");
words.forEach(word -> word = word.toUpperCase()); // 注意:這里不會修改原列表
System.out.println(words); // 輸出: [Java, Python, C++]

如果需要修改元素,可以使用 replaceAll 方法:

words.replaceAll(String::toUpperCase);
System.out.println(words); // 輸出: [JAVA, PYTHON, C++]
  1. 結合使用 sort 和 forEach
List<String> words = Arrays.asList("Java", "Python", "C++");// 按字符串長度排序
words.sort(Comparator.comparingInt(String::length));// 遍歷并打印排序后的元素
words.forEach(System.out::println);// 輸出:
// C++
// Java
// Python
  1. 總結
    在這里插入圖片描述

sort:用于排序,支持自然順序和自定義比較器。
forEach:用于遍歷,簡化代碼邏輯。
這兩個函數是 Java 8 引入的函數式編程特性的一部分,能夠顯著提高代碼的簡潔性和可讀性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70617.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70617.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70617.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習驅動的車牌識別:技術演進與未來挑戰

一、引言 1.1 研究背景 在當今社會&#xff0c;智能交通系統的發展日益重要&#xff0c;而車牌識別作為其關鍵組成部分&#xff0c;發揮著至關重要的作用。車牌識別技術廣泛應用于交通管理、停車場管理、安防監控等領域。在交通管理中&#xff0c;它可以用于車輛識別、交通違…

GitCode 助力至善云學:構建智慧教育平臺

項目倉庫&#xff1a; 前端&#xff1a;https://gitcode.com/Fer_Amiya/vue-ZhiShanYunXue-Client 后端&#xff1a;https://gitcode.com/Fer_Amiya/go-ZhiShanYunXue-Server 突破傳統教學困境&#xff0c;探索教育新解法 傳統教學的習題講評環節&#xff0c;教師面臨著難以…

系統架構設計師備考策略

一、備考痛點 系統架構設計師考試以 知識體系龐雜、實踐性強 著稱&#xff0c;官方教材《系統架構設計師教程&#xff08;第2版&#xff09;》厚達 700 余頁&#xff0c;若盲目通讀耗時費力。根據近三年考情分析&#xff0c;“抓重點 分層突破 實戰輸出” 是高效通關的核心策…

nnUNet V2修改網絡——加入MultiResBlock模塊

更換前,要用nnUNet V2跑通所用數據集,證明nnUNet V2、數據集、運行環境等沒有問題 閱讀nnU-Net V2 的 U-Net結構,初步了解要修改的網絡,知己知彼,修改起來才能游刃有余。 MultiRes Block 是 MultiResUNet 中核心組件之一,旨在解決傳統 U-Net 在處理多尺度醫學圖像時的局…

verilog基礎知識

一,Verilog和VHDL區別 全世界高層次數字系統設計領域中,應用Verilog和VHDL的比率是80%和20%;這兩種語言都是用于數字電路系統設計的硬件描述語言, 而且都已經是 IEEE 的標準。 VHDL 是美國軍方組織開發的,VHDL1987年成為標準;Verilog 是由一個公司的私有財產轉化而來,…

HarmonyOS 開發套件 介紹——下篇

HarmonyOS 開發套件 介紹——下篇 在HarmonyOS的生態中&#xff0c;開發套件作為支撐整個系統發展的基石&#xff0c;為開發者提供了豐富而強大的工具和服務。本文將深入繼續介紹HarmonyOS SDK、ArkCompiler、DevEco Testing、AppGallery等核心組件&#xff0c;幫助開發者全面掌…

小懌學習日記(七) | Unreal引擎燈光架構

燈光的布局對于HMI場景中車模的展示效果有著舉足輕重的地位。本篇內容將簡單介紹ES3.1的相關知識&#xff0c;再深入了解Unreal引擎中車模的燈光以及燈光架構。 一、關于ES3.1 1.1 什么是ES3.1 ES3.1這個概念對于美術的同學可能比較陌生&#xff0c;ES3.1指的是OpenGL ES3.1&…

【洛谷排序算法】P1012拼數-詳細講解

這道題本質上是通過確定數字的拼接順序來得到最大拼接數&#xff0c;雖然主要思路是利用字符串及其比較規則來實現&#xff0c;但也可以基于數組結合一些轉換操作來解決&#xff0c;以下是大致思路和代碼示例&#xff1a; 【算法思路】 首先將輸入的數字存儲在數組中。然后自…

2025前端框架最新組件解析與實戰技巧:Vue與React的革新之路

作者&#xff1a;飛天大河豚 引言 2025年的前端開發領域&#xff0c;Vue與React依然是開發者最青睞的框架。隨著Vue 3的全面普及和React 18的持續優化&#xff0c;兩大框架在組件化開發、性能優化、工程化支持等方面均有顯著突破。本文將從最新組件特性、使用場景和編碼技巧三…

基于YOLO11深度學習的運動鞋品牌檢測與識別系統【python源碼+Pyqt5界面+數據集+訓練代碼】

《------往期經典推薦------》 一、AI應用軟件開發實戰專欄【鏈接】 項目名稱項目名稱1.【人臉識別與管理系統開發】2.【車牌識別與自動收費管理系統開發】3.【手勢識別系統開發】4.【人臉面部活體檢測系統開發】5.【圖片風格快速遷移軟件開發】6.【人臉表表情識別系統】7.【…

Docker 部署AnythingLLM

兩個指令搞定 1.下載鏡像 docker pull mintplexlabs/anythingllm 2.運行容器 export STORAGE_LOCATION$HOME/anythingllm mkdir -p $STORAGE_LOCATION chmod -R 777 $STORAGE_LOCATION touch "$STORAGE_LOCATION/.env" docker run -d -p 3001:3001 \ --cap-add SY…

java開發——為什么要使用動態代理?

舉個例子&#xff1a;假如有一個殺手專殺男的&#xff0c;不殺女的。代碼如下&#xff1a; public interface Killer {void kill(String name, String sex);void watch(String name); }public class ManKiller implements Killer {Overridepublic void kill(String name, Stri…

Moonshot AI 新突破:MoBA 為大語言模型長文本處理提效論文速讀

前言 在自然語言處理領域&#xff0c;隨著大語言模型&#xff08;LLMs&#xff09;不斷拓展其閱讀、理解和生成文本的能力&#xff0c;如何高效處理長文本成為一項關鍵挑戰。近日&#xff0c;Moonshot AI Research 聯合清華大學、浙江大學的研究人員提出了一種創新方法 —— 混…

Linux中的查看命令

路徑分為相對路徑&#xff08;行相對當前工作目錄開始的路徑&#xff09;和絕對路徑&#xff08;不管是&#xff09;#&#xff1a;命令提示符&#xff0c;從這個位置可以開始輸入命令&#xff0c;另一個提示符為$&#xff0c;如果是root&#xff0c;則提示為#&#xff1b;如果是…

如何用校園內網遠程連接服務器

注&#xff1a;本機家庭版windows11&#xff0c;要連接校園網&#xff0c;windows10/11一般都內置openssh&#xff0c;找到后安裝&#xff0c;被連服務器是linux 一、先查看是否安裝openssh&#xff0c;沒有的話安裝 方法一&#xff1a; -> 1.1 按下winR按鍵&#xff0c;…

AI客服-接入deepseek大模型到微信(本地部署deepseek集成微信自動收發消息)

1.本地部署 1.1 ollama Ollama軟件通過其高度優化的推理引擎和先進的內存管理機制&#xff0c;顯著提升了大型語言模型在本地設備上的運行效率。其核心采用了量化技術&#xff08;Quantization&#xff09;以降低模型的計算復雜度和存儲需求&#xff0c;同時結合張量并行計算&…

使用 Docker-compose 部署 MySQL

使用 Docker Compose 部署 MySQL 本文將詳細指導如何使用 docker-compose 部署 MySQL&#xff0c;包括基本配置、啟動步驟、數據持久化以及一些高級選項。通過容器化部署 MySQL&#xff0c;你可以快速搭建一個隔離的數據庫環境&#xff0c;適用于開發、測試或小型生產場景。 關…

HTML 中的 Canvas 樣式設置全解

在 HTML5 中&#xff0c;<canvas> 元素提供了一個強大的繪圖接口&#xff0c;允許開發者通過 JavaScript 實現各種圖形和動畫效果。為了充分利用 <canvas> 的功能&#xff0c;理解其樣式設置是至關重要的。本文將詳細介紹如何在 HTML 中設置 <canvas> 的各種…

【論文解析】Fast prediction mode selection and CU partition for HEVC intra coding

級別:IET Image Processing(2020)CCF CSCI 4區時間:2020年機構:蘇州大學下載地址:Fast prediction mode selection and CU partition for HEVC intra coding摘要 HEVC確實是一個很大的進步,編碼效率翻倍,但計算復雜度也增加了不少。為了解決這個問題,提出了兩種算法:…

大數據組件(四)快速入門實時數據湖存儲系統Apache Paimon(2)

Paimon的下載及安裝&#xff0c;并且了解了主鍵表的引擎以及changelog-producer的含義參考&#xff1a; 大數據組件(四)快速入門實時數據湖存儲系統Apache Paimon(1) 利用Paimon表做lookup join&#xff0c;集成mysql cdc等參考&#xff1a; 大數據組件(四)快速入門實時數據…