【发布时间】:2019-01-09 19:52:39
【问题描述】:
我有一个属性this.sudoku,它是一个int[9][9] 数组。
我需要将其中的一列放入一个集合中。
Set<Integer> sudoku_column = IntStream.range(0, 9)
.map(i -> this.sudoku[i][column])
.collect(Collectors.toSet());
我希望这个集合中有一个列值。但它说Collectors.toSet() 不能应用于链中的这个收集函数。谁能解释一下原因?
【问题讨论】:
-
收集到一组时要小心。除了答案中解释的
mapToObj错误之外,Collectors.toSet()返回的Set实现不会对其元素施加顺序。因此,您可能会丢失行的顺序,即返回集合的第一个元素与对应于第一行的元素不匹配。您最好收集到List。
标签: java java-8 set java-stream collectors