1. 程式人生 > 實用技巧 >Your host does not meet minimum requirements to run VMware workstation with hyper-v or device/creden

Your host does not meet minimum requirements to run VMware workstation with hyper-v or device/creden

目錄

Map父介面

特點:儲存一對資料(Key-Value),無序、無下標,鍵不可重複,值可重複。

定義public interface Map<K,V>

方法

V put(K key,V value)   //將物件存入到集合中,關聯鍵值。key重複則覆蓋原值。
Object get(Object key) //根據鍵獲取對應的值
Set<K> keySet()        //返回所有的key
Collection<V> values() //返回包含所有值的Collection
Set<Map.Entry<K,V>> entrySet() //返回此對映中包含的對映關係的 Set 檢視。 

HashMap


/**
 * Map集合的使用
 * 特點:儲存鍵值對;鍵可以重複,值不可以重複;無序
 * HashMap:
 *  jdk1.2版本,執行緒不安全,執行效率快;允許用null作為key或是value
 */
public class Map1 {
    public static void main(String[] args) {

        //建立集合
        Map<String,String> map = new HashMap<>();

        //新增元素
        map.put("cn","中國");
        map.put("uk","英國");
        map.put("usa","美國");
        map.put("cn","zhongguo");//已經存在鍵為"cn"的值了,會把原來的值覆蓋掉
        System.out.println(map);

        //判斷
        System.out.println(map.containsKey("cn"));//判斷是否存在key
        System.out.println(map.containsValue("中國"));//判斷是否存在value


        //刪除元素
//        String usa = map.remove("usa");//會返回刪除key所對應的value,key不存在返回null
//        System.out.println("刪除了:"+usa);
//        boolean removed = map.remove("uk", "英國");//會返回是否刪除成功
//        System.out.println("刪除成功:"+removed);

        //遍歷
        //方法一 獲取key的set集合,使用迭代器
//        Set<String> keySet = map.keySet();
//        Iterator<String> keyIterator = keySet.iterator();
//        while (keyIterator.hasNext()){
//            String key = keyIterator.next();
//            String value = map.get(key);
//            System.out.println(key+"---"+value);
//        }

        //方法二 獲取key的set集合,使用增強for
//        Set<String> keySet = map.keySet();
//        for (String key : keySet) {
//            System.out.println(key+"---"+map.get(key));
//        }

        //方法三 獲取map的Entry組成的Set集合,然後使用迭代器遍歷
//        Set<Map.Entry<String, String>> entrySet = map.entrySet();
//        Iterator<Map.Entry<String, String>> entryIterator = entrySet.iterator();
//        while (entryIterator.hasNext()){
//            Map.Entry<String, String> entry = entryIterator.next();
//            String key = entry.getKey();
//            String value = entry.getValue();
//            System.out.println(key+"---"+value);
//        }

        //方法四 獲取map的Entry組成的Set集合,然後使用迭代器遍歷
        Set<Map.Entry<String, String>> entrySet = map.entrySet();
        for (Map.Entry<String, String> entry : entrySet) {
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key+"---"+value);
        }

    }
}

執行結果

{usa=美國, uk=英國, cn=zhongguo}
true
false
usa---美國
uk---英國
cn---zhongguo

HashMap判斷重複的方式和HashSet是一樣的,都是判斷元素(key)的hashCodeequals是否相同。存入HashMap的元素在重寫這兩個方法。