如何使用java 8 lambda表达式更改以下代码。以下是我的代码:
import concurrent.futures
def single(a, b, c=True):
return (a, b, c)
if __name__ == '__main__':
iterable_a = range(4)
iterable_b = range(4,8)
with concurrent.futures.ProcessPoolExecutor() as executor:
results = executor.map(single, iterable_a, iterable_b)
在上面的代码中,我使用了for循环来添加来自两个不同列表的元素。我如何使用lamba表达式执行上述相同的步骤?
答案 0 :(得分:2)
以下代码也是如此:
List<String> result = Stream.concat(
list1.stream().flatMap(s -> Stream.of(s.getName(), s.getParentName())),
list2.stream().flatMap(m -> Stream.of(m.getName(), m.getManagerName()))
)
.collect(Collectors.toList());
如果您需要确保创建ArrayList
,请改用Collectors.toCollection(ArrayList::new)
。
答案 1 :(得分:1)
我不太确定,但这是你正在寻找的吗?
list1.forEach(s -> {
result.add(s.getName());
result.add(s.getParentName());
});
list2.forEach(m -> {
result.add(m.getName());
result.add(m.getManagerName());
});