複製鏈接
請複製以下鏈接發送給好友

containsKey

鎖定
containsKey(Object key) 方法的規範中寫道:“當且僅當此映射包含針對滿足 (key==null ? k==null : key.equals(k)) 的鍵 k 的映射關係時,返回 true”。不 應將此規範解釋為:調用具有非空參數 key 的 Map.containsKey 將導致對任意的鍵 k 調用 key.equals(k)。實現可隨意進行優化,以避免調用 equals
中文名
containsKey
外文名
containsKey
使用例子
Map 的 get()
避免調用
equals
返回為 null
生成數據
程序簡介
使用例子:
1. 調用 Map 的 get() 方法獲取數據;
2. 如果返回不為 null, 直接返回該數據;
3. 如果返回為 null, 則生成數據, 或者從其他地方獲取數據, 然後存放入 Map 中, 最後返回該數據.
這裏, 我們可以通過使用 Map 的containsKey() 方法來檢測數據(value)是否存在, 如果key存在, 則表明已經獲取過一次數據, 那麼直接返回該 key 在 Map 中的值. 不管是否為 null 都直接返回; 如果 key 不存在, 則去生成或者獲取數據, 並放入到 Map 中, 並返回該數據.
這裏使用 containsKey() 來檢測可以應用於: 1. 從其他地方獲取的數據可能為空, 並且不會有變化; 2. 獲取數據比較耗時. 這個場景下, 使用該方法可以大大降低消耗, 特別是在同步情況下。
上邊説的太麻煩,看下邊的例子就一目瞭然了
package com.okdi.controller;
import java.util.HashMap;
import java.util.Map;
public class Test {
    /**
    * @param args
    */
    public static void main(String[] args) {
        Map map=new HashMap();
        map.put("a","aaa");
        System.out.println(map.containsKey("a")); //輸出true 如果這個map集合中有這個key就返回true
        System.out.println(map.containsKey("b")); //輸出false 沒有就返回false
    }
}