在Java中,可以使用reduce
方法來對(duì)Stream中的元素進(jìn)行歸約操作。reduce
方法接受一個(gè)初始值和一個(gè)BinaryOperator函數(shù)作為參數(shù),然后對(duì)Stream中的元素依次應(yīng)用這個(gè)函數(shù)進(jìn)行計(jì)算,最終返回一個(gè)計(jì)算結(jié)果。
下面是一個(gè)簡單的示例,演示如何使用reduce
方法對(duì)一個(gè)整數(shù)列表進(jìn)行求和操作:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream()
.reduce(0, (a, b) -> a + b);
System.out.println(sum);
在上面的示例中,我們首先創(chuàng)建了一個(gè)整數(shù)列表numbers
,然后通過stream()
方法將其轉(zhuǎn)換為一個(gè)Stream。接著調(diào)用reduce
方法,傳入初始值0
和一個(gè)Lambda表達(dá)式(a, b) -> a + b
作為參數(shù),Lambda表達(dá)式表示對(duì)兩個(gè)參數(shù)進(jìn)行求和操作。最終得到整數(shù)列表的總和并打印輸出。
除了求和操作,reduce
方法還可以用于其他類型的歸約操作,比如對(duì)列表中的元素進(jìn)行最大值、最小值、字符串拼接等操作。只需要根據(jù)具體需求更換Lambda表達(dá)式中的操作即可。