【发布时间】:2023-03-18 20:02:02
【问题描述】:
尝试编写一个简单的程序,该程序将打印 Java8 中输入数组中的唯一单词。例如,如果输入是
String[] input = {"This", "is", "This", "not"};
程序应该输出 [T, h, i, s, n, o, t] ,元素的顺序应该遵循它们在输入中出现的相同模式。我的方法是split 输入,然后map,distinct,最后collect 到列表。但是下面的代码是打印流列表而不是单词,我错过了什么?例如
String[] input = {"This", "is", "This", "not"};
System.out.println(Arrays.stream(input)
.map(word -> word.split(""))
.map(Arrays::stream)
.distinct()
.collect(toList()));
电流输出
[java.util.stream.ReferencePipeline$Head@548c4f57, java.util.stream.ReferencePipeline$Head@1218025c, java.util.stream.ReferencePipeline$Head@816f27d, java.util.stream.ReferencePipeline$Head@87aac27]
我有兴趣看看 Java8 中是否还有其他方法可以实现相同的目标。
【问题讨论】:
标签: java arrays functional-programming