我有一个List<Foo>并且想要一个番石榴Multimap<String, Foo>,我们Foo按照它们的Collection<String> getTags()功能的每个标签对它们进行分组.
我正在使用java 8,所以lambdas和方法引用很好/鼓励.
例如,如果我有:
foo1, tags=a,b,c
foo2, tags=c,d
foo3, tags=a,c,e
Run Code Online (Sandbox Code Playgroud)
我会得到一个Multimap<String, Foo>:
a -> foo1, foo3
b -> foo1
c -> foo1, foo2, foo3
d -> foo2
e -> foo3
Run Code Online (Sandbox Code Playgroud) 我想.txt使用 Java Stream在文件中查找字谜。这是我所拥有的:
try (InputStream is = new URL("http://wiki.puzzlers.org/pub/wordlists/unixdict.txt").openConnection().getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
Stream<String> stream = reader.lines()) {
Run Code Online (Sandbox Code Playgroud)
以及字谜的方法:
public boolean isAnagram(String firstWord, String secondWord) {
char[] word1 = firstWord.replaceAll("[\\s]", "").toCharArray();
char[] word2 = secondWord.replaceAll("[\\s]", "").toCharArray();
Arrays.sort(word1);
Arrays.sort(word2);
return Arrays.equals(word1, word2);
}
Run Code Online (Sandbox Code Playgroud)
如何使用 Java 8 Stream 检查 unixdict.txt 中的单词是否是字谜?有没有办法将一个词与流中的所有词进行比较?