在迭代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); });
文章评论