【发布时间】:2019-12-07 14:43:02
【问题描述】:
我正在制作一个程序,将图片转换为灰度形式,然后从该灰度形式将其转换为 Fairey 格式。
我正在使用嵌套的 for 循环来转换嵌套列表。这工作得很好,但我想使用流来做到这一点,如果我使用输出改变来做到这一点,但我认为它应该产生相同的输出。我哪里错了?
grayPhoto 是List<List<Graypixel>>
你们有没有看到我做错了什么或者流应该是怎样的?
for (int i = 0; i < grayPhoto.size(); i++) {
for (int j = 0; j < grayPhoto.get(i).size(); j++) {
numbersSet.add(grayPhoto.get(i).get(j));
}
}
grayPhoto.forEach(r -> r.forEach(e -> numbersSet.add(e)));
【问题讨论】:
-
惯用的方法是使用 flatMap 并使用 Collectors.toSet() 收集到一个集合。 docs.oracle.com/javase/8/docs/api/java/util/stream/…你问的是错误吗?
-
什么是
numbersSet? (我的意思是为什么相同数据类型的名称会有如此大的差异。)除此之外,它是List还是Set? -
您现在可以考虑接受一个答案;)以奖励那些为您花费时间的人;)或评论一个答案以获取详细信息
标签: java list lambda set java-stream