假设我有一个字符串列表
["bird", "bird", "dog", "dog", "bird","bog"]
我希望它们以以下形式收集为 map
{"bird": [0, 1, 4], "dog": [2, 3, 5]}
列表值是单词在输入列表上的索引。
有没有办法用 Java Streams 来做到这一点?
最佳答案
是的,您可以将 IntStream
与 Collectors.groupingBy
一起使用:
List<String> list = List.of("bird", "bird", "dog", "dog", "bird", "bog");
IntStream.range(0, list.size())
.boxed()
.collect(Collectors.groupingBy(list::get));
输出:
{bird=[0, 1, 4], bog=[5], dog=[2, 3]}
关于Java Streams 列表将出现的索引映射为键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51901633/