使用Java8流实现此集合的最佳方法
我需要的是所有EnumVals.getValues()的唯一组合列表 我做了如下操作,但它抛出了错误:使用Java8流实现此集合的最佳方法,java,java-8,java-stream,collectors,Java,Java 8,Java Stream,Collectors,我需要的是所有EnumVals.getValues()的唯一组合列表 我做了如下操作,但它抛出了错误: String[] allVals = {"a","b","c","d","e"} 您需要使用来展平阵列。此外,您可以在流上使用,而不是收集到哈希集中 Stream.of(EnumVals.values()).map(w->w.getValues()).collect(Collectors.toCollection(HashSet::new)).toArray(new String[0]
String[] allVals = {"a","b","c","d","e"}
您需要使用来展平阵列。此外,您可以在流上使用,而不是收集到哈希集中
Stream.of(EnumVals.values()).map(w->w.getValues()).collect(Collectors.toCollection(HashSet::new)).toArray(new String[0]);
注意瓦拉格人的存在。它们可以极大地简化代码,就像您问题中的代码一样…
Stream.of(EnumVals.values()).map(w->w.getValues()).collect(Collectors.toCollection(HashSet::new)).toArray(new String[0]);
Arrays.stream(EnumVals.values())
.map(EnumVals::getValues)
.flatMap(Arrays::stream)
.distinct()
.toArray(String[]::new);