一、判斷方法
Java中判斷Map中Key是否存在,可以使用Map類的containsKey(Object key)方法,該方法返回一個boolean型的值,如果Map中存在該Key,則返回true,否則返回false。
Map<String, String> map = new HashMap<>(); map.put("key1", "value1"); map.put("key2", "value2"); // 判斷Map中是否存在Key為"key1" if(map.containsKey("key1")) { System.out.println("Map中存在Key為key1"); } else { System.out.println("Map中不存在Key為key1"); }
上述代碼中,我們首先實例化了一個Map對象,然後向其中添加了兩個鍵值對,接着使用containsKey()方法判斷Map中是否存在Key為”key1″的鍵,並輸出結果。
二、比較兩種判斷方式
除了使用Map類的containsKey()方法判斷Key是否存在外,還可以使用get(Object key)方法。該方法如果返回null,說明Map中不存在該Key,否則Map中存在該Key。
Map<String, String> map = new HashMap<>(); map.put("key1", "value1"); map.put("key2", "value2"); // 判斷Map中是否存在Key為"key1" if(map.get("key1") != null) { System.out.println("Map中存在Key為key1"); } else { System.out.println("Map中不存在Key為key1"); }
上述代碼中,我們同樣添加了兩個鍵值對,然後使用get()方法判斷Map中是否存在Key為”key1″的鍵,如果返回值不為null,說明Map中存在該Key。
通過比較,我們發現:使用containsKey()方法判斷Key是否存在的效率優於使用get()方法,因為containsKey()方法只需要查找Key所在的位置即可,而get()方法需要在查找到Key位置之後還要取出對應的Value,所以使用containsKey()方法可以更快地判斷Key是否存在。
三、遍歷Map中的Key
如果需要遍歷Map中的所有Key,可以使用Map的keySet()方法獲取一個Set集合,該集合包含了Map中所有的Key,然後遍歷該集合即可。
Map<String, String> map = new HashMap<>(); map.put("key1", "value1"); map.put("key2", "value2"); // 遍歷Map中的所有Key for(String key : map.keySet()) { System.out.println(key); }
上述代碼中,我們同樣添加了兩個鍵值對,然後使用keySet()方法獲取一個Set集合,遍歷該集合輸出Map中的所有Key。
四、使用Java8的Stream操作
如果想要更加簡潔地判斷Map中是否存在某個Key,可以使用Java8中的Stream操作。
Map<String, String> map = new HashMap<>(); map.put("key1", "value1"); map.put("key2", "value2"); // 判斷Map中是否存在Key為"key1" boolean contains = map.keySet().stream().anyMatch(key -> key.equals("key1")); if(contains) { System.out.println("Map中存在Key為key1"); } else { System.out.println("Map中不存在Key為key1"); }
上述代碼中,我們同樣添加了兩個鍵值對,然後使用Stream操作判斷Map中是否存在Key為”key1″的鍵。
五、使用Guava庫
如果你的項目中使用了Google Guava庫,那麼判斷Map中是否存在Key可以使用該庫提供的方法。
Map<String, String> map = new HashMap<>(); map.put("key1", "value1"); map.put("key2", "value2"); // 判斷Map中是否存在Key為"key1" if(Maps.immutableEntry("key1", "value1").equals(Maps.immutableEntry("key1", map.get("key1")))) { System.out.println("Map中存在Key為key1"); } else { System.out.println("Map中不存在Key為key1"); }
上述代碼中,我們同樣添加了兩個鍵值對,然後使用Guava庫提供的immutableEntry()方法創建了一個Entry對象,該對象指定了Key為”key1″,Value為map.get(“key1”),然後使用equals()方法比較Entry對象是否相等。如果相等,則說明Map中存在Key為”key1″。
六、小結
Java中判斷Map中Key是否存在,可以使用Map類的containsKey(Object key)方法,也可以使用get(Object key)方法。使用containsKey()方法效率優於使用get()方法。如果需要遍歷Map中的所有Key,可以使用Map的keySet()方法獲取一個Set集合,然後遍歷該集合。Java8中的Stream操作可以更加簡潔地判斷Map中是否存在某個Key,而Guava庫則提供了immutableEntry()方法用於判斷Map中是否存在某個Entry。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/301261.html