使用Lambda表達式遍歷List

一、Lambda表達式的簡介

Lambda表達式是Java SE 8中一個重要的新特性。它是一個匿名函數,它可以傳遞給方法作為參數,並可以像對象一樣進行存儲。Lambda表達式可以在不使用類或者接口的情況下創建函數。

它的一般形式為:

(parameters) -> expression
或
(parameters) -> { statements; }

這裡,parameters 是 Lambda 表達式的參數列表,這裡我們可以直接指定參數類型或使用類型推斷來省略參數類型。-> 是 Lambda 表達式的語法結構。而 expression 或 statements 則是 Lambda 表達式的函數體。

二、使用Lambda表達式遍歷List

在Java中,遍歷一個List一般需要使用迭代器或增強for循環。使用Lambda表達式可以使得代碼更簡潔易懂。

List list = Arrays.asList("a", "b", "c", "d");
list.forEach((String s) -> System.out.println(s));

上面的代碼中,我們使用 forEach 方法和 Lambda 表達式遍歷了一個字符串類型的 List。這裡,Lambda 表達式被用作 Consumer 函數式接口的一個實例,它接收一個字符串參數,然後打印該字符串。

當然,由於Java SE 8引入了類型推斷特性,我們可以省略參數類型:

List list = Arrays.asList("a", "b", "c", "d");
list.forEach(s -> System.out.println(s));

三、Lambda表達式遍歷List的其他應用

1、遍歷一個對象類型的List

假設我們有一個 Person 類型的 List:

class Person {
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

List persons = Arrays.asList(
        new Person("Tom", 20),
        new Person("Mike", 30),
        new Person("Jack", 25)
);

persons.forEach(person -> System.out.println(person.getName() + " " + person.getAge()));

2、List中元素的篩選

我們可以使用 Lambda 表達式結合 Stream API 對 List 中的元素進行篩選、過濾等操作。比如,我們可以過濾出年齡大於等於 25 的 Person:

persons.stream().filter(person -> person.getAge() >= 25).forEach(person -> System.out.println(person.getName() + " " + person.getAge()));

上面的代碼中,我們使用了 Stream API 的 filter 方法對 persons List 進行過濾,只保留年齡大於等於 25 的 Person。

3、對List中的元素進行映射

我們可以使用 map 方法將 List 中的每個元素映射為另外一種類型的元素。比如,我們可以創建一個 List,其中每個元素為 Person 的姓名:

List names = persons.stream().map(Person::getName).collect(Collectors.toList());

上面的代碼中,我們使用 map 方法將 Person 中的 name 屬性映射為 String 類型,並使用 collect 方法將結果收集到一個新的 List 中。

4、對List中的元素進行排序

我們可以使用 sorted 方法對 List 中的元素進行排序,比如按照年齡從小到大排序:

List sortedPersons = persons.stream().sorted(Comparator.comparingInt(Person::getAge)).collect(Collectors.toList());

上面的代碼中,我們使用了 sorted 方法和 Comparator 對 List 中的元素進行排序,以年齡為比較依據。

四、總結

Lambda表達式是Java SE 8中一個非常重要的新特性,它的簡潔性和靈活性為Java程序員帶來了極大的便利。

使用Lambda表達式遍歷List可以使得代碼更加簡潔易懂,同時,結合 Stream API 可以對 List 中的元素進行篩選、過濾、映射和排序等操作。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-17 19:38
下一篇 2024-12-17 19:38

相關推薦

  • Tensor to List的使用

    Tensor to List是TensorFlow框架提供的一個非常有用的函數,在很多的深度學習模型中都會用到。它的主要功能是將TensorFlow中的張量(Tensor)轉換為P…

    編程 2025-04-29
  • Python遍歷集合中的元素

    本文將從多個方面詳細闡述Python遍歷集合中的元素方法。 一、for循環遍歷集合 Python中,使用for循環可以遍歷集合中的每個元素,代碼如下: my_set = {1, 2…

    編程 2025-04-29
  • Python如何遍歷字典中的key和value

    本文將詳細講解Python中如何遍歷字典中的key和value,包括多種遍歷方式以及在遍歷過程中的一些應用場景。 一、遍歷字典中的key和value 在Python中,字典是一種無…

    編程 2025-04-29
  • 如何使用Python將輸出值賦值給List

    對標題進行精確、簡明的解答:本文將從多個方面詳細介紹Python如何將輸出的值賦值給List。我們將分步驟進行探討,以便讀者更好地理解。 一、變量類型 在介紹如何將輸出的值賦值給L…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python List查找用法介紹

    在Python中,list是最常用的數據結構之一。在很多場景中,我們需要對list進行查找、篩選等操作。本文將從多個方面對Python List的查找方法進行詳細的闡述,包括基本查…

    編程 2025-04-28
  • 二叉樹非遞歸先序遍歷c語言

    本文將為您詳細介紹二叉樹的非遞歸先序遍歷算法,同時提供完整的C語言代碼示例。通過本文,您將了解到二叉樹的先序遍歷算法,以及非遞歸實現的方式。 一、二叉樹的先序遍歷算法介紹 在介紹二…

    編程 2025-04-28
  • Python如何遍歷列表

    在Python編程中,列表是一種常用的數據類型,它允許我們存儲多個值。但是,我們如何遍歷列表並對其中的每個值進行操作呢? 一、for循環遍歷列表 fruits = [‘apple’…

    編程 2025-04-28
  • Python遍歷字典刪除元素

    本文主要介紹Python中如何遍歷字典並刪除元素。在實際應用中,遍歷字典並刪除元素是一種非常常見的操作,但需要注意的是,直接在字典中刪除元素可能會改變字典中其他元素的索引順序,因此…

    編程 2025-04-28
  • Python DataFrame轉List用法介紹

    Python中常用的數據結構之一為DataFrame,但有時需要針對特定需求將DataFrame轉為List。本文從多個方面針對Python DataFrame轉List詳細介紹。…

    編程 2025-04-27

發表回復

登錄後才能評論