是否有方便的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);
}
map = {A = 0,B = 1,C = 2,D = 3,E = 4}
答案 0 :(得分: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()));
它比简单的for循环IMO更不易读。所以我会坚持这一点。