HashMap常见遍历方式
1,迭代器
代码案例
@Test
public void test01() {
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "1");
map.put(2, "2");
map.put(3, "3");
map.put(4, "4");
map.put(5, "5");
System.out.println("使用迭代器 EntrySet 的方式遍历!");
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<Integer, String> next = iterator.next();
System.out.println(next.getKey() + ":" + next.getValue());
}
System.out.println("使用迭代器 KeySet 的方式遍历!");
Iterator<Integer> integerIterator = map.keySet().iterator();
while (integerIterator.hasNext()) {
Integer integer = integerIterator.next();
System.out.println(integer + ":" + map.get(integer));
}
}
测试结果
2,ForEach 遍历
代码案例
@Test
public void test02() {
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "1");
map.put(2, "2");
map.put(3, "3");
map.put(4, "4");
map.put(5, "5");
System.out.println("使用 For Each EntrySet 的方式进行遍历");
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
System.out.println("使用 For Each KeySet 的方式进行遍历;");
for (Integer key : map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
}
测试结果
3,lambda 表达式遍历
代码案例
@Test
public void test03() {
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "1");
map.put(2, "2");
map.put(3, "3");
map.put(4, "4");
map.put(5, "5");
System.out.println("使用 Lambda 表达式的方式进行遍历");
map.forEach((key, value) -> {
System.out.println(key + ":" + value);
});
}
测试结果
4,StreamsApi 遍历
代码案例
@Test
public void test04() {
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "1");
map.put(2, "2");
map.put(3, "3");
map.put(4, "4");
map.put(5, "5");
System.out.println("使用 Streams API 单线程的方式进行遍历");
map.entrySet().stream().forEach(integerStringEntry -> System.out.println(integerStringEntry.getKey() + ":" + integerStringEntry.getValue()));
System.out.println("使用 Streams API 多线程的方式进行遍历");
map.entrySet().parallelStream().forEach(integerStringEntry -> System.out.println(integerStringEntry.getKey()+":"+integerStringEntry.getValue()));
}
测试结果