/* package whatever; // don't place package name! */
import java.util.*;
import java.util.stream.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone {
char[] chars = word.toCharArray();
}
public static final List<List<String>> groupAnagrams(Stream<String> stream) {
Map
<String, List
<String
>> mapped
= stream.
collect(Collectors.
groupingBy(w
-> keyOf
(w
))); return new ArrayList<>(mapped.values());
}
String[][] words
= {{"bat",
"tab",
"tea",
"eat",
"ate"},
{"foo",
"boo",
"moo",
"omo"}}; String out
= groupAnagrams
(Stream.
of(wa
)) .stream()
.map(wl -> wl.stream().collect(Collectors.joining("\", \"", " [\"", "\"]")))
.collect(Collectors.joining(",\n", "[\n", "\n]"));
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLnN0cmVhbS4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lIHsKCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIGtleU9mKFN0cmluZyB3b3JkKSB7CgkJY2hhcltdIGNoYXJzID0gd29yZC50b0NoYXJBcnJheSgpOwoJCUFycmF5cy5zb3J0KGNoYXJzKTsKCQlyZXR1cm4gbmV3IFN0cmluZyhjaGFycyk7Cgl9CgkKCXB1YmxpYyBzdGF0aWMgZmluYWwgTGlzdDxMaXN0PFN0cmluZz4+IGdyb3VwQW5hZ3JhbXMoU3RyZWFtPFN0cmluZz4gc3RyZWFtKSB7CgkJTWFwPFN0cmluZywgTGlzdDxTdHJpbmc+PiBtYXBwZWQgPSBzdHJlYW0uY29sbGVjdChDb2xsZWN0b3JzLmdyb3VwaW5nQnkodyAtPiBrZXlPZih3KSkpOwoJCXJldHVybiBuZXcgQXJyYXlMaXN0PD4obWFwcGVkLnZhbHVlcygpKTsKCX0KCQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uIAl7CgkJU3RyaW5nW11bXSB3b3JkcyA9IHt7ImJhdCIsICJ0YWIiLCAidGVhIiwgImVhdCIsICJhdGUifSwgeyJmb28iLCAiYm9vIiwgIm1vbyIsICJvbW8ifX07CgkJZm9yIChTdHJpbmdbXSB3YSA6IHdvcmRzKSB7CgkJCVN0cmluZyBvdXQgPSBncm91cEFuYWdyYW1zKFN0cmVhbS5vZih3YSkpCgkJCQkuc3RyZWFtKCkKCQkJCS5tYXAod2wgLT4gd2wuc3RyZWFtKCkuY29sbGVjdChDb2xsZWN0b3JzLmpvaW5pbmcoIlwiLCBcIiIsICIgIFtcIiIsICJcIl0iKSkpCgkJCQkuY29sbGVjdChDb2xsZWN0b3JzLmpvaW5pbmcoIixcbiIsICJbXG4iLCAiXG5dIikpOwoJCQlTeXN0ZW0ub3V0LnByaW50bG4ob3V0KTsKCQl9Cgl9Cn0=