Java8 Stream操作指南

Java8引入了新的Stream API,提供了很多便捷的操作來處理集合和數組等數據結構。Stream API提供了一種簡單易用的方法來操作數據,可以使代碼更加優雅和可讀。在本篇文章中,我們將會介紹Java8 Stream API的各個方面。

一、創建Stream

Java8中可以使用Stream.of()創建Stream。以下是一個字符串數組的例子:

String[] strArr = {"hello", "world", "java", "stream"};
Stream<String> strStream = Stream.of(strArr);

也可以使用Arrays.stream()方法來創建Stream。下面的例子演示了如何創建一個整型數組的Stream:

int[] intArr = {1, 2, 3, 4};
IntStream intStream = Arrays.stream(intArr);

還可以使用Stream.generate()和Stream.iterate()方法來創建無限的Stream,這些方法中需要提供一個lambda表達式來生成無限的元素。下面的例子演示了如何使用Stream.generate()方法來生成一個由Java隨機數組成的Stream:

Stream<Double> randomStream = Stream.generate(Math::random);

二、中間操作

Stream API提供了一些中間操作來處理Stream中的元素,這些操作會返回一個新的Stream。下面是一些常用的中間操作:

1. filter()

filter()方法用來過濾Stream中的元素,接收一個lambda表達式作為參數,lambda表達式返回一個boolean值。

Stream<String> strStream = Stream.of("hello", "world", "java", "stream");
Stream<String> newStream = strStream.filter(str -> str.length() > 4);

上述代碼會過濾掉長度小於等於4的元素,只會保留長度大於4的元素。

2. map()

map()方法用來對Stream中的每個元素進行映射,接收一個lambda表達式作為參數,lambda表達式必須返回一個新的元素。

Stream<String> strStream = Stream.of("hello", "world", "java", "stream");
Stream<Integer> newStream = strStream.map(str -> str.length());

上述代碼將Stream中每個元素映射成其長度,返回一個新的Integer類型的Stream。

3. distinct()

distinct()方法用來去重,即返回一個沒有重複元素的新Stream。

Stream<String> strStream = Stream.of("hello", "world", "hello");
Stream<String> newStream = strStream.distinct();

上述代碼會去重,只保留一個“hello”元素。

4. sorted()

sorted()方法用來對Stream中的元素進行排序,接收一個Comparator作為參數,如果沒有提供Comparator,則會使用元素默認的自然排序。

Stream<String> strStream = Stream.of("world", "java", "hello", "stream");
Stream<String> newStream = strStream.sorted();

上述代碼會對Stream中的元素進行從小到大的排序。

5. limit()

limit()方法用來取Stream中的前N個元素,其中N由參數決定。

Stream<String> strStream = Stream.of("hello", "world", "java", "stream");
Stream<String> newStream = strStream.limit(2);

上述代碼返回一個包含前兩個元素的新Stream。

三、終止操作

Stream API提供了一些終止操作來對Stream最終的結果進行處理,這些操作會返回一個特定類型的值或void。下面是一些常用的終止操作:

1. forEach()

forEach()方法用來遍歷Stream中所有的元素,接收一個lambda表達式作為參數,該lambda表達式用來對每個元素進行操作。

Stream<String> strStream = Stream.of("hello", "world", "java", "stream");
strStream.forEach(str -> System.out.println(str));

上述代碼會輸出所有的元素。

2. collect()

collect()方法用來將Stream中的所有元素收集到一個集合中,接收一個Collector作為參數,該Collector用來定義集合的類型和如何將元素加入集合中。

Stream<String> strStream = Stream.of("hello", "world", "java", "stream");
List<String> strList = strStream.collect(Collectors.toList());

上述代碼會將Stream中的元素收集到一個List中。

3. reduce()

reduce()方法用來將Stream中的所有元素合併起來,接收一個BinaryOperator作為參數,BinaryOperator用來定義合併操作。

Stream<Integer> intStream = Stream.of(1, 2, 3, 4);
int sumResult = intStream.reduce(0, (a, b) -> a + b);

上述代碼會將Stream中的所有元素相加,返回一個整型的結果。

四、總結

Java8 Stream是一個強大而優雅的API,這使得Java更靈活和易於處理數據。通過使用Stream API,我們可以更好地組織和操作集合和數組等數據結構。不僅減少了代碼量,使代碼更簡潔,同時提高了代碼執行效率。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UEOP的頭像UEOP
上一篇 2024-10-04 00:12
下一篇 2024-10-04 00:12

相關推薦

  • 如何使用integratecustomerdata.stream().filter(c->{ if (collectionutil.isnotempty(

    本文將詳細介紹如何在Java編程中使用integratecustomerdata.stream().filter(c->{ if (collectionutil.isnote…

    編程 2025-04-28
  • 高二會考Python操作指南

    本篇文章將從基礎語法、數據類型、函數、模塊庫等多方面對高二會考Python操作進行詳細闡述,幫助大家順利通過高考。 一、基礎語法 Python是一門高級編程語言,相對於其他低級語言…

    編程 2025-04-27
  • C++ Stream詳解

    一、從C Stream讀取 C Stream是C語言中進行標準輸入輸出操作的方式。C++在繼承C語言的同時也繼承了這種方式,通過使用C Stream,我們可以向同一個設備中進行不同…

    編程 2025-04-25
  • Stream去重的完全指南

    一、Stream去重的介紹 在Java 8以後,引入了一個非常強大的流處理(Stream)庫,其中一個流操作是去重。Stream去重是一種便捷的方法,用於刪除集合中的重複元素並返回…

    編程 2025-04-23
  • tar xzf操作指南

    tar xzf是Linux系統中常用的解壓文件操作命令,它可以解壓經過壓縮的文件,並將文件展開到指定的目錄下。 一、常用參數 1、x表示解壓文件,z表示解壓後用gzip進行解壓,f…

    編程 2025-04-23
  • Java Stream Collect詳解

    一、Collect的簡介 Collect是Java 8 Stream API中一種非常實用的終止操作,可以將Stream中的數據轉化為特定的容器(Collection)或 Map對…

    編程 2025-04-20
  • Java Stream去重詳解

    Stream是Java 8引入的一款新特性,它支持函數式編程,可以使用Lambda表達式來對集合進行操作,使代碼更簡潔、優雅。而去重是Stream中常見的操作之一,那麼Stream…

    編程 2025-04-12
  • Java Stream轉換Map

    一、介紹 Java 8中引入了Stream API,提供了豐富的功能,方便我們對集合進行各種操作,其中一個非常常見的操作就是將Stream轉換為一個Map。 二、Stream轉換為…

    編程 2025-04-12
  • PS基本操作指南

    一、PS概述 Adobe Photoshop,簡稱PS,是目前世界上最出名、最流行的圖像處理軟件之一。由Adobe公司出品的Photoshop具有很多優秀的特性,如豐富的濾鏡、各種…

    編程 2025-02-25
  • 深入了解Java 8 Stream中的groupby方法

    Java 8 引入的 Stream API 對於集合的操作提供了一種新的方式,包括篩選,分組和映射等。Stream API 中的 groupby 方法可以將一個 Stream 中的…

    編程 2025-02-25

發表回復

登錄後才能評論