JavaList篩選詳解

一、JavaList 簡介

JavaList 是一種常見的數據結構,它是一個有序的集合,可以存儲重複的元素。JavaList 是 Java API 中最為常用的集合之一,可以根據索引快速訪問元素,還可以在列表中任意地插入和刪除項。

JavaList 接口有兩個實現類:ArrayList 和 LinkedList。ArrayList 實現了可變大小的數組,LinkedList 實現了一個雙向鏈表。兩者均支持 get()set() 方法,但是 ArrayList 更適合於隨機訪問元素,而 LinkedList 更適合於添加和刪除元素。

二、JavaList 篩選方法

1. 篩選出符合條件的元素

List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
List evenNumbers =
        numbers.stream()
               .filter(n -> n % 2 == 0)
               .collect(Collectors.toList());

上面的 Java 代碼用 stream().filter() 篩選出了列表中的所有偶數,然後將它們放入一個新列表 evenNumbers 中。

2. 篩選第一個符合條件的元素

List names = Arrays.asList("Alice", "Bob", "Charlie", "Dave");
Optional firstNameWithC =
        names.stream()
             .filter(name -> name.startsWith("C"))
             .findFirst();

以上 Java 代碼用 stream().filter().findFirst() 篩選出了列表中第一個以字母 “C” 開頭的名字,並將其賦值給 firstNameWithC 變量。由於 firstNameWithC 是一個 Optional 對象,所以需要使用 isPresent() 方法來判斷其中是否存在該元素。

3. 篩選出最後一個符合條件的元素

List names = Arrays.asList("Alice", "Bob", "Charlie", "Dave");
Optional lastNameWithB =
        names.stream()
             .filter(name -> name.endsWith("b"))
             .reduce((first, second) -> second);

以上 Java 代碼使用 stream().filter().reduce() 篩選列表中最後一個以字母 “b” 結尾的名字,由於 reduce() 返回的是一個 Optional 對象,所以需要使用 isPresent() 方法來判斷其中是否存在該元素。

4. 刪除列表中符合條件的元素

List names = new ArrayList(Arrays.asList("Alice", "Bob", "Charlie", "Dave"));
names.removeIf(name -> name.startsWith("C"));

以上 Java 代碼中用 removeIf() 方法刪除了列表中所有以字母 “C” 開頭的名字,其中 removeIf() 方法會返回一個 boolean 類型,表示是否有任何元素被刪除。

5. 篩選並計數符合條件的元素

List names = Arrays.asList("Alice", "Bob", "Charlie", "Dave");
long nameCountWithB =
        names.stream()
             .filter(name -> name.contains("b"))
             .count();

以上 Java 代碼使用 stream().filter().count() 篩選出列表中包含字母 “b” 的名字,並計算個數。注意,count() 方法返回的是一個 long 類型。

三、JavaList 篩選總結

本文介紹了 JavaList 的基礎知識,並詳細列舉了 JavaList 篩選的五種方法,分別是:篩選出符合條件的元素、篩選第一個符合條件的元素、篩選出最後一個符合條件的元素、刪除列表中符合條件的元素以及篩選並計數符合條件的元素。

這些方法都十分實用,具有很大的用途價值,希望本文能幫助讀者更好地掌握 JavaList 的篩選技巧。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/311541.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-05 13:24
下一篇 2025-01-05 13:24

相關推薦

  • 神經網絡代碼詳解

    神經網絡作為一種人工智能技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網絡的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網絡模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25
  • Python安裝OS庫詳解

    一、OS簡介 OS庫是Python標準庫的一部分,它提供了跨平台的操作系統功能,使得Python可以進行文件操作、進程管理、環境變量讀取等系統級操作。 OS庫中包含了大量的文件和目…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web服務器。nginx是一個高性能的反向代理web服務器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分布式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • Java BigDecimal 精度詳解

    一、基礎概念 Java BigDecimal 是一個用於高精度計算的類。普通的 double 或 float 類型只能精確表示有限的數字,而對於需要高精度計算的場景,BigDeci…

    編程 2025-04-25
  • MPU6050工作原理詳解

    一、什麼是MPU6050 MPU6050是一種六軸慣性傳感器,能夠同時測量加速度和角速度。它由三個傳感器組成:一個三軸加速度計和一個三軸陀螺儀。這個組合提供了非常精細的姿態解算,其…

    編程 2025-04-25

發表回復

登錄後才能評論