jis*_*ist 2 java grouping java-8 java-stream
假设我有一个字符串列表
["bird", "bird", "dog", "dog", "bird","bog"]
Run Code Online (Sandbox Code Playgroud)
我希望它们以形式收集为地图
{"bird": [0, 1, 4], "dog": [2, 3, 5]}
Run Code Online (Sandbox Code Playgroud)
作为列表值是单词在输入列表中的索引.
有没有办法用Java Streams做到这一点?
Jac*_* G. 15
是的,你可以使用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));
Run Code Online (Sandbox Code Playgroud)
输出:
{bird=[0, 1, 4], bog=[5], dog=[2, 3]}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |