在迭代Map/HashMap/LinkedHashMap的时候,可能会需要使用到当前迭代的下标(index)
传统的方式可能是这样做的,在外层加一个计数器
LinkedHashMap<Integer, String> map = new LinkedHashMap<>();
map.put(100, "name1");
map.put(200, "name2");
//迭代key,value
int index = 0; // 计数器
for (Integer key : map.keySet()) {
index++;
System.out.println("key: "+key+", value: "+map.get(key));
}
Java8以上可以做的更加优雅简捷一些:
LinkedHashMap<Integer, String> map = new LinkedHashMap<>();
map.put(100, "name1");
map.put(200, "name2");
AtomicInteger indexAtomic = new AtomicInteger(0);
map.forEach((key, value) -> {
int index = indexAtomic.getAndIncrement(); //index从0开始
System.out.println("index: " + index + ", key: " + key + ", value: " + value);
});
文章评论