Java遍历Map对象有哪些方式呢?
下文笔者讲述java遍历Map对象的方法分享,如下所示
方法1:foreach对entrySet来遍历
Map简介
Map是一个接口 常见的Map实现类 如下所示:HashMap, TreeMap, LinkedHashMap, Hashtable等 map接口中提供以下方法,如: map.keySet();//键集合 map.values();//值集合 map.entrySet();//键值集合 循环Map,笔者借助以上的集合信息,然后对其进行遍历 即可实现遍历Map对象 下文是笔者收集的遍历Map的方法,如下所示
方法1:foreach对entrySet来遍历
public static void method1EntrySet(Map<String, Object> map) {
System.out.println(" 第一种方式 entrySet ");
// 当map为空,就不执行for循环体
// map = new HashMap<>();
Set<Map.Entry<String, Object>> set2 = map.entrySet();
for (Map.Entry<String, Object> entry : set2) {
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
System.out.println("---- method2EntrySet done ----");
}
方法2:for-each循环中遍历keys或values
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("id", "8888");
map.put("name", "maomao");
map.put("age", "18");
System.out.println("使用增强for循环:");
for (String key : map.keySet()) {
System.out.println("k=" + key + ",v=" + map.get(key));
}
for (String v : map.values()) {
System.out.println("value=" + v);
}
}
方法3:使用迭代器Iterator遍历
public static void methodIterator(Map<String, Object> map) {
System.out.println(" 第三种遍历方式 method4Iterator");
Iterator<Map.Entry<String, Object>> entries = map.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<String, Object> entry = entries.next();
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
}
方法4:通过键找值遍历
public static void methodGetKey(Map<String, Object> map) {
System.out.println(" 方式4: methodGetKey ");
Set<String> keSet = map.keySet();
for (Iterator<String> iterator = keSet.iterator(); iterator.hasNext(); ) {
String key = iterator.next();
System.out.println(key + " value: " + map.get(key));
}
}
方法5:使用Lambda表达式
private static void methodLambda(Map<String, Object> map) {
System.out.println("使用Lambda表达式进行遍历:");
map.forEach((key, value) -> System.out.println("key:value = " + key + ":" + value));
System.out.println("使用Lambda表达式遍历key:");
map.keySet().forEach(key ->
System.out.println(" key==>" + key + ",对应的value==>" + map.get(key)));
System.out.println("使用Lambda表达式遍历value:");
map.values().forEach(value -> System.out.println(value));
}
方法6:使用jdk8的foreach方法
private static void methodBiConsumer(Map<String, String> map) {
System.out.println("使用Java 8的forEach进行遍历:");
map.forEach(new BiConsumer<String, String>() {
@Override
public void accept(String key, String value) {
System.out.println("k=" + key + ",v=" + value);
}
});
}
方法7:使用jdk8中的Stream流
private static void methodStream(Map<String, String> map) {
System.out.println("使用stream流进行遍历:");
map.entrySet().stream().forEach((Map.Entry entry) -> {
System.out.println(entry.getKey());
System.out.println(entry.getValue());
});
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。