Java 11 字符串数组到数组位置映射,字符串



我有一个字符串数组,我想在 Map 中转换它。不使用AtomicInteger或第三方 API。

样本:

final String[] strings = new String[]{"Arsenal", "Chelsea", "Liverpool"};
final Map<Integer, String> map = new HashMap<>();
for (int i = 0; i < strings.length; i++) {
map.put(i, strings[i]);
}
System.out.println(map);

使用流 API 实现此目的的最佳和简洁方法是什么?

经过研究,我找到了 2 种可能的解决方案:

final Map<Integer, String> map = IntStream.rangeClosed(0, strings.length - 1)
.mapToObj(i -> new SimpleEntry<>(i + 1, strings[i]))
.collect(Collectors.toMap(SimpleEntry::getKey, SimpleEntry::getValue));

和:

final Map<Integer, String> map = IntStream.rangeClosed(0, strings.length - 1)
.boxed()
.collect(toMap(i -> i + 1, i -> strings[i]));

我不需要实例化AbstractMap.SimpleEntry

有什么更好的解决方案吗?有什么建议是哪一种是最好的方法吗?

最新更新