91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中Map有什么用

發布時間:2021-07-07 18:25:26 來源:億速云 閱讀:237 作者:小新 欄目:開發技術

這篇文章主要介紹了Java中Map有什么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

    Map

    Map是一種依照鍵(key)存儲元素的容器,鍵(key)很像下標,在List中下標是整數。在Map中鍵(key)可以使任意類型的對象。Map中不能有重復的鍵(Key),每個鍵(key)都有一個對應的值(value)。

    一個鍵(key)和它對應的值構成map集合中的一個元素。

    Map中的元素是兩個對象,一個對象作為鍵,一個對象作為值。鍵不可以重復,但是值可以重復。

    看頂層共性方法找子類特有對象.

    Map與Collection在集合框架中屬并列存在

    Map存儲的是鍵值對

    Map存儲元素使用put方法,Collection使用add方法

    Map集合沒有直接取出元素的方法,而是先轉成Set集合,在通過迭代獲取元素

    Map集合中鍵要保證唯一性

    也就是Collection是單列集合, Map 是雙列集合。

    學習體系

    Map學習體系:
     ---| Map  接口    將鍵映射到值的對象。一個映射不能包含重復的鍵;每個鍵最多只能映射到一個值。
                ---| HashMap  采用哈希表實現,所以無序
                ---| TreeMap   可以對健進行排序
    ---|Hashtable:
    底層是哈希表數據結構,線程是同步的,不可以存入null鍵,null值。
    效率較低,被HashMap 替代。
    ---|HashMap:
    底層是哈希表數據結構,線程是不同步的,可以存入null鍵,null值。
    要保證鍵的唯一性,需要覆蓋hashCode方法,和equals方法。
    ---| LinkedHashMap:
    該子類基于哈希表又融入了鏈表。可以Map集合進行增刪提高效率。
    ---|TreeMap:
    底層是二叉樹數據結構。可以對map集合中的鍵進行排序。需要使用Comparable或者Comparator 進行比較排序。return 0,來判斷鍵的唯一性。

    常見方法

    1、添加:
        1、V put(K key, V value)    (可以相同的key值,但是添加的value值會覆
    蓋前面的,返回值是前一個,如果沒有就返回null)                                         
        2、putAll(Map<? extends K,? extends V> m)  從指定映射中將所有映射關
    系復制到此映射中(可選操作)。
    2、刪除
        1、remove()    刪除關聯對象,指定key對象
        2、clear()     清空集合對象
    3、獲取
         1:value get(key); 可以用于判斷鍵是否存在的情況。當指定的鍵不存在的時候,返
    回的是null。
    3、判斷:
        1、boolean isEmpty()   長度為0返回true否則false
        2、boolean containsKey(Object key)  判斷集合中是否包含指定的key
    3、boolean containsValue(Object value)  判斷集合中是否包含指定的value
    4、長度:
    Int size()

    Map的操作

    這里使用hashMap

    map增刪查

    import java.util.HashMap;
    import java.util.Map;
    public class Maps {
        public static void main(String[] args){
            Map<String,String> myMap=new HashMap<String,String>();
            myMap.put("N0lan","tryup");
            myMap.put("Cors","study");//add
            System.out.println(myMap);
            myMap.remove("N0lan");//delete
            System.out.println(myMap.get("Cors"));//find
            System.out.println(myMap.isEmpty());//panduan
            System.out.println(myMap.containsKey("Hello"));//
        }
    }

    Java中Map有什么用

    map的遍歷

    keySet遍歷

    將Map轉成Set集合(keySet()),通過Set的迭代器取出Set集合中的每一個元素(Iterator)就是Map集合中的所有的鍵,再通過get方法獲取鍵對應的值。

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    public class Maps {
        public static void main(String[] args){
           /* Map<String,String> myMap=new HashMap<String,String>();
            myMap.put("N0lan","tryup");
            myMap.put("Cors","study");//add
            System.out.println(myMap);
            myMap.remove("N0lan");//delete
            System.out.println(myMap.get("Cors"));//find
            System.out.println(myMap.isEmpty());//panduan
            System.out.println(myMap.containsKey("Hello"));//*/
            Bianli();
        }
        public static void Bianli(){
            Map<String,String> myMap=new HashMap<String,String>();
            myMap.put("N0lan","tryup");
            myMap.put("III","tryups");
            myMap.put("Cors","study");//add
            //
            // 獲取方法:
            // 第一種方式: 使用keySet
            // 需要分別獲取key和value,沒有面向對象的思想
            // Set<K> keySet() 返回所有的key對象的Set集合
            Set<String> keyvaule= myMap.keySet();
            Iterator<String> keys=keyvaule.iterator();
            while(keys.hasNext()){
                String key=keys.next();
                String vaule=myMap.get(key);
                System.out.println("key=" + key + " vaule=" + vaule);
            }
        }
    }

    Java中Map有什么用

    第二種方式:通過values獲取所有值,不能獲取到key對象

    Java中Map有什么用

    第三種方式: Map.Entry遍歷

    面向對象的思想將map集合中的鍵和值映射關系打包為一個對象,就是Map.Entry,將該對象存入Set集合,Map.Entry是一個對象,那么該對象具備的getKey,getValue獲得鍵和值。

     public  static  void Entryt(){
            Map<String,String> myMap=new HashMap<String,String>();
            myMap.put("N0lan","tryup");
            myMap.put("III","tryups");
            myMap.put("Cors","study");//add
            // 返回的Map.Entry對象的Set集合 Map.Entry包含了key和value對象
            Set<Map.Entry<String,String>> ts= myMap.entrySet();
            Iterator<Map.Entry<String,String>> all=ts.iterator();
            while (all.hasNext()){
                Map.Entry<String, String> allin = all.next();
                System.out.println("key="+allin.getKey()+"  value="+allin.getValue());
            }
        }
    }

    Java中Map有什么用

    HashMap案例用自定義對象作為Map的key

    import sun.invoke.empty.Empty;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    public class SelfClass {
        public static  void main(String[] args){
            HashMap<Person,String> mymap=new HashMap<Person,String>();
            mymap.put(new Person("N0lan",99),"boy");
            mymap.put(new Person("zAD",99),"GIR");
            Set<Map.Entry<Person,String>> duixiang=mymap.entrySet();
            Iterator<Map.Entry<Person, String>> it = duixiang.iterator();
            while(it.hasNext()){
                Map.Entry<Person,String> next=it.next();
                Person key= next.getKey();
                String value = next.getValue();
                System.out.println(key + " = " + value);
            }
        }
    }
    class Person{
        private String name;
        private int age;
        Person(){
        }
        public Person(String name,int age){
            this.name=name;
            this.age=age;
        }
        public String getName(){
            return name;
        }
        public void Setname(String name){
            this.name=name;
        }
        @Override
        public int hashCode() {
            return this.name.hashCode() + age * 37;
        }
        @Override
        public boolean equals(Object obj) {
            if (obj instanceof Person) {
                Person p = (Person) obj;
                return this.name.equals(p.name) && this.age == p.age;
            } else {
                return false;
            }
        }
        @Override
        public String toString() {
            return "Person@name:" + this.name + " age:" + this.age;
        }
     
    }

    TreeMap

    TreeMap的排序,TreeMap可以對集合中的鍵進行排序。如何實現鍵的排序?

    方式一:元素自身具備比較性

    和TreeSet一樣原理,需要讓存儲在鍵位置的對象實現Comparable接口,重寫compareTo方法,也就是讓元素自身具備比較性,這種方式叫做元素的自然排序也叫做默認排序。

    方式二:容器具備比較性

    當元素自身不具備比較性,或者自身具備的比較性不是所需要的。那么此時可以讓容器自身具備。需要定義一個類實現接口Comparator,重寫compare方法,并將該接口的子類實例對象作為參數傳遞給TreeMap集合的構造方法。

    注意:當Comparable比較方式和Comparator比較方式同時存在時,以Comparator的比較方式為主

    感謝你能夠認真閱讀完這篇文章,希望小編分享的“Java中Map有什么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    农安县| 阳泉市| 垣曲县| 龙胜| 和平区| 龙江县| 孝感市| 河源市| 庆云县| 六安市| 湾仔区| 湛江市| 新晃| 龙里县| 京山县| 双柏县| 陇南市| 涟水县| 武宣县| 民勤县| 定州市| 嫩江县| 临武县| 盐源县| 嘉义县| 正宁县| 泽普县| 浪卡子县| 财经| 昌都县| 额敏县| 普兰县| 天全县| 崇阳县| 平阳县| 瑞安市| 永德县| 错那县| 龙游县| 古浪县| 游戏|