如何使用 Java 8 流對串列串列中的每個元素求和?例如,我在一個串列中有 3 個不同的串列,我試圖對每個串列中的每個元素求和并創建另一個串列。我是 Java 8 的新手,正在嘗試使用流 api 解決一些問題。任何幫助將不勝感激!
List<List<Integer>> cases = [[1,1,2],[3,3,2],[4,5,1]];
我試圖實作的輸出:
{[4,8,10]}
uj5u.com熱心網友回復:
你可以這樣做:
List<List<Integer>> cases = Arrays.asList(Arrays.asList(1, 1, 2), Arrays.asList(3, 3, 2), Arrays.asList(4, 5, 1));
List<Integer> result = cases.stream()
.map(list -> list.stream().mapToInt(Integer::intValue).sum())
.collect(Collectors.toList());
System.out.println(result); // print [4, 8, 10]
uj5u.com熱心網友回復:
您可以使用StreamAPI 并減少內部串列來獲取其元素的總和。
演示:
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<List<Integer>> cases = List.of(List.of(1, 1, 2), List.of(3, 3, 2), List.of(4, 5, 1));
List<Integer> result = cases.stream()
.map(e -> e.stream().reduce(0, Integer::sum))
.collect(Collectors.toList());
System.out.println(result);
}
}
輸出:
[4, 8, 10]
ONLINE DEMO
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/351815.html
