Dan*_*ári 1 java lambda java-8 java-stream
是否有一种方便的Java8流API方式从List<T> to Map<T, (index)>以下示例进行转换:
List<Character> charList = "ABCDE".chars().mapToObj(e->(char)e).collect(Collectors.toList());
Map<Character, Integer> map = new HashMap<>();
for (int i = 0; i < charList.size(); i++) {
map.put(charList.get(i), i);
}
Run Code Online (Sandbox Code Playgroud)
映射= {A = 0,B = 1,C = 2,D = 3,E = 4}
您可以使用以下令人讨厌的技巧,但它并不优雅,并且在链接列表上根本没有效率:
List<String> list = Arrays.asList("a", "b", "c");
Map<String, Integer> result =
IntStream.range(0, list.size())
.boxed()
.collect(Collectors.toMap(list::get, Function.identity()));
Run Code Online (Sandbox Code Playgroud)
它也比简单的for循环IMO的可读性差。所以我会坚持下去。
| 归档时间: |
|
| 查看次数: |
1977 次 |
| 最近记录: |