使用java.util.stream将列选择到记录列表中
从使用java.util.stream将列选择到记录列表中,java,java-8,java-stream,Java,Java 8,Java Stream,从列表中 输出: 类java.util.HashSet:[HF\U合成器\U 1,功率计, 串行服务器、工作台ETH开关、CW传感器、低频发生器、, 频谱分析仪,PC机监控] 它能工作,但有点复杂,不是吗 我的问题是:提出一个更简洁/可读的代码您可以省去大多数与流相关的操作,只需使用addAll方法直接将所有元素添加到集合中: Set<String> result = new HashSet<>(); // or another kind of Set statuses.
列表中
输出:
类java.util.HashSet:[HF\U合成器\U 1,功率计,
串行服务器、工作台ETH开关、CW传感器、低频发生器、,
频谱分析仪,PC机监控]
它能工作,但有点复杂,不是吗
我的问题是:提出一个更简洁/可读的代码您可以省去大多数与流相关的操作,只需使用addAll方法直接将所有元素添加到集合中:
Set<String> result = new HashSet<>(); // or another kind of Set
statuses.forEach(r -> result.addAll(r.outOfDateProperty().get()));
Set result=new HashSet();//还是另一套
statuses.forEach(r->result.addAll(r.outOfDateProperty().get());
它没有太多地使用流API,但是它很短,也很容易阅读。我认为你做得再好不过了。
List< Record > statuses = worker.getData()._status;
final Set<String> result =
statuses
.stream()
.flatMap(
r -> r.outOfDateProperty().get().stream())
.collect( Collectors.toSet());
System.err.println( result );
Set<String> result = new HashSet<>(); // or another kind of Set
statuses.forEach(r -> result.addAll(r.outOfDateProperty().get()));