我得到了一串字符串,并希望按长度映射它们
Stream<String> s = Stream.of("aaaa", "a", "aaa", "a", "aaaa", "aa", "aaaaaa", "aa");
Map<Integer, Set<String> result = null;
int i = 0;
result.put(i, s.filter(x -> (x.length() == i));
Run Code Online (Sandbox Code Playgroud)
显然,这不会以这种方式工作,因为我不能多次打开流,并且我无法访问longes String以获得良好的循环.但是我怎么能做到呢?
这是针对您的问题的Java8解决方案,
final Map<Integer, Set<String>> strByLength = s
.collect(Collectors.groupingBy(String::length, Collectors.toSet()));
Run Code Online (Sandbox Code Playgroud)