我有 2 个清单。
List<String> names = Arrays.asList("A","B",C","D");
List<String> wife = Arrays.asList("E","F","G);
我使用了reduce()将其合并到一个列表中。
Stream.of(names, wife)
.reduce(new ArrayList<String>(), (list, val) -> {
list.addAll(val);
return list;
},
(list1, list2) -> {list1.addAll(list2); return list1; }));
如何使用
执行相同的操作collect
方法。我不想使用 Collectors.java 类中的函数。可以做到吗?
我试过这个
List.of(names, wife).stream()
.collect(new ArrayList<List<String>>(), (l1, l2) -> l1.addAll(l2));
但是,我看到l2是List类型,而不是l1类型。 l1是什么?我想了解收集方法的工作原理。请帮忙!
如果我了解您的目标,您可以简单地使用:
List<String> result = Stream.concat(names.stream(), wife.stream()).toList();
或者:
List<String> result = new ArrayList<>(names);
result.addAll(wife);