是否有可能以更好的方式使用流来执行下面提到的步骤?
SetmemberIds = new HashSet<>(); marksDistribution.parallelStream().forEach(marksDistribution -> { memberIds.add(marksDistribution.getStudentId()); memberIds.add(marksDistribution.getTeacherId()); });
instanceDistribution.getStudentId()
并且instanceDistribution.getTeacherId()
都是类型Long
.
有可能会提出这类问题,但我无法理解.简单的是或否.如果是/否,那么如何和位解释.如果可能的话,请讨论效率.
是的,您可以使用flatMap
将您的单个元素映射Stream
到Stream
多个元素中,然后将它们展平为单个元素Stream
:
SetmemberIds = marksDistribution.stream() .flatMap (marksDistribution -> Stream.of(marksDistribution.getStudentId(), marksDistribution.getTeacherId())) .collect(Collectors.toSet());