首页 > 解决方案 > 对两个 List 的每个元素求和s 进入一个新列表

问题描述

如何通过相同索引的包含值将两个列表合并为一个列表。
我有 2 个列表,我想通过相同索引的包含值合并两个列表。
(如果可能的话,请建议我使用 java 8: Streams。)

List<String> a = Arrays.asList("1", "2", "3");
List<String> b = Arrays.asList("10", "20", "30");

输出 :

{"11", "22", "33"}

标签: javajava-8java-stream

解决方案


仅使用标准库的解决方案:

List<String> a = Arrays.asList("1", "2", "3");
List<String> b = Arrays.asList("10", "20", "30");

List<String> c = IntStream.range(0, a.size())
                          .map(i -> Integer.parseInt(a.get(i)) + Integer.parseInt(b.get(i)))
                          .mapToObj(Integer::toString)
                          .collect(Collectors.toList());

请注意,输入将商店编号列为String,如您的示例中所指定。此外,您可以将map()mapToObj()调用合并为一个mapToObj()调用,但为了清楚起见,我想将其分开。

它还假设两个列表的大小相同,如果不是,ArrayIndexOutOfBoundsException将被抛出。


推荐阅读