Son*_*ali 0 java list java-stream
我有两个列表,我想将列表 1 的每个元素与列表 2 的每个元素进行比较,并在列表 3 中获得结果,例如
List1 = {99,22,33}
list2 = {11,24,33}
Run Code Online (Sandbox Code Playgroud)
结果:
list3 = {1,-1,0}
Run Code Online (Sandbox Code Playgroud)
我如何最好使用流来做到这一点?
像这样尝试:
这将ints用比较的结果替换用于索引每个列表的流。然后将它们收集到列表中。
注意:我添加了一个保护措施来考虑不同大小的列表。它将使用两者中较小的一个来防止抛出异常。但是较长列表的尾随元素将被忽略。
List<Integer> list1 = List.of(99, 22, 33);
List<Integer> list2 = List.of(11, 24, 33);
// safeguard against different sized lists.
int minLen = Math.min(list1.size(), list2.size());
List<Integer> result = IntStream.range(0, minLen)
.map(i -> list1.get(i).compareTo(list2.get(i)))
.boxed().collect(Collectors.toList());
System.out.println(result);
Run Code Online (Sandbox Code Playgroud)
印刷
[1, -1, 0]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
423 次 |
| 最近记录: |