<center id="qkqgy"><optgroup id="qkqgy"></optgroup></center>
  • <menu id="qkqgy"></menu>
    <nav id="qkqgy"></nav>
    <xmp id="qkqgy"><nav id="qkqgy"></nav>
  • <xmp id="qkqgy"><menu id="qkqgy"></menu>
    <menu id="qkqgy"><menu id="qkqgy"></menu></menu>
    <tt id="qkqgy"><tt id="qkqgy"></tt></tt>

  • <>【一起來學Java數據結構】——Map

    在java的數據結構中Map是用來查找的一種數據結構。Map是一種接口。

    這種查找和普通的二分查找等之類的可不一樣,因為這種事動態的查找,可以在查找的過程中進行增加,刪除等操作

    它主要分為HashMap和TreeMap

    <>Key-Value模型

    HashMap最重要的特征就是Key-Value模型了

    hashMap同時可以查找key和Value兩個值,key唯一,所以每一個key對應一個value

    <>Key模型

    TreeMap就是使用的Key模型。

    但是同時他會保存key和value兩個值。只是它主要將key進行排序。

    <>Map的方法實現

    <>put()
    返回值:Value 函數名:put(key,value)
    例子:
    Map<String,Integer> map=new HashMap<>(); Integer a=map.put("1",1); Integer b=
    map.put("2",2); Integer c=map.put("3",3); Integer d=map.put("4d",null);
    //value是null也是可以的
    對hashMap來說,key和value都可以是null,

    對TreeMap來說,只有value可以是null
    //map.put(null,1);//不可以 map.put("10",null);//可以
    <>get()
    返回值:Value 函數名:get(key)
    例子:
    Integer ret=map.get("1"); System.out.println(ret);
    <>getOrDefault
    返回值:Value 函數名:getOrDefault(key,Default) 找到key對應的value,沒找到就返回default
    例子:
    Integer Value1=map.getOrDefault("1",0); System.out.println(Value1);//1 Integer
    Value2=map.getOrDefault("1000",0); System.out.println(Value2);//0
    <>remove
    返回值:value 函數值:remove(key) 刪除key和對應的value值,并返回其value System.out.println(map);
    Integer value=map.remove("1"); System.out.println(value); System.out.println(map
    ); ---------------------------------- {1=1, 2=2, 3=3} 1 {2=2, 3=3}
    <>keySet和Values

    keySet:
    返回值:裝滿key的set集合 函數值:keySet() 返回一個裝有key的一個set集合 Set<String> set=map.keySet();
    System.out.println(set); -------------------------- [1a, 2b, 3c] 下面這種也是可以的: for
    (String s: map.keySet()) { System.out.print(s+" "); }
    value
    for (Integer i:map.values()) { System.out.print(i+" "); } ---------------------
    1 2 3
    <>entrySet
    返回值:Set<Map.Entry<K,V>> 函數值:entrySet 將key和value保存到Set中
    例子:
    Set<Map.Entry<String,Integer>> set2=map.entrySet(); for (Map.Entry<String,
    Integer> map1:set2) { System.out.println(map1); } ------------------------------
    - 1a=1 2b=2 3c=3
    <>containsKey和containsValue
    返回值 boolean 函數值: containsKey(key),constainsValue(Value) 查找是否含有Key和value,找到返回
    true,沒有找到返回value System.out.println(map.containsKey("1a"));//true System.out.
    println(map.containsKey("4a"));//false System.out.println(map.containsValue(1));
    //true System.out.println(map.containsValue(100));//false
    <>hashMap和TreeMap

    <>共同點

    * 線程不安全
    * key的值不可一樣,value可以一樣
    <>不同點

    * hashMap的key和value可以都是null,但是TreeMap的key不可以是null,value可以是null
    * hashMap是根據hash值去來查找的,TreeMap是根據排序的順序來用的
    * hashMap是哈希桶,TreeMap是紅黑二叉樹

    技術
    下載桌面版
    GitHub
    百度網盤(提取碼:draw)
    Gitee
    云服務器優惠
    阿里云優惠券
    騰訊云優惠券
    華為云優惠券
    站點信息
    問題反饋
    郵箱:ixiaoyang8@qq.com
    QQ群:766591547
    關注微信
    巨胸美乳无码人妻视频