san*_*ank 3 java java-8 java-stream
我正在填充一个Map<Character, Integer> alphabetToNumber映射与其字母位置对应的字母
char [] alphabetArray = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
Map<Character, Integer> alphabetToNumber = new HashMap<>();
int counter = 1;
for(Character letter : alphabetArray) {
alphabetToNumber.put(letter, counter);
counter++;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码有效,但我想知道是否可以使用Java 8流完成.谢谢.
Map<Character, Integer> result = IntStream.rangeClosed('A', 'Z')
.boxed()
.collect(Collectors.toMap(
x -> (char) x.intValue(),
x -> x + (1 - 'A')));
Run Code Online (Sandbox Code Playgroud)
甚至更好的拳击/解拳太多:
Map<Character, Integer> result = IntStream.rangeClosed('A', 'Z')
.collect(
HashMap::new,
(map, c) -> map.put((char) c, c + (1 - 'A')),
HashMap::putAll
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |