iT邦幫忙

0

重新學JAVA-02-2-資料結構part 2

  • 分享至 

  • xImage
  •  

繼上次的ArrayList和 LinkedList之後,接著來介紹Map、Set啦

Map

由 Key、Value對應組成的資料結構

Key                       Value
US                        United
es                        spain
zw                        zimbab

可以想成 商品(Key)和商品條碼(Value)的概念

Key、Value可以為任一類型
其中Hashtable、TreeMap、ConcurrenHashMap不允許null為key
JAVA內建的實作有下面這幾種
HashMap(較常用)
LinkedHashMap
TreeMap
Hashtable
ConcurrenHashMap

再深入Map之前,先來瞭解Hash

Hash(雜奏)

這邊先知道概念~

Hash是一個概念,不是一個固定的方法
計算機科學中的一種技術,將數據通過特定的演算法轉換成一個固定大小的值(成為哈希值或散列值)

假設我有一個值:123455 >
經過hash function >
變成一個固定大小的值:drjhilDAGE33fl34

特點:
單向操作,無法還原
固定大小是由hash function來決定

HashMap

HashMap是MAP界面的的實作
特點
無序(HashMap的元素和LinkedList一樣,是分散在記憶體,而且是透過Key來尋找在記憶體中的位置)
允許null的鍵和null的值
鍵唯一(每個Key都是唯一(只有一個,不能重複),如果重複,插入的值的會覆蓋原本的
非同步

常見的用法

        Map<Type, object> map = new HashMap<使用泛型,不定義型態,在建立物件的時候,由該物件去決定型態>();
        
        Map<String, String> map = new HashMap<>();
        map.put("1", "Google");//用 .put 添加元素
        map.put("2", "Runoob");
        map.put("3", "Taobao");

        map.get(3);//取得key為3的值=>Taobao
        map.remove(3); //刪除key為3的值=>Taobao
        map.clear();//刪除所有=> {}
    
    

HashSet

     HashSet<String> set = new HashSet<String>();
     set.add("Google");  //HashSet 使用 add添加元素,和HashMap不一樣
     set.add("Runoob");
     set.add("Taobao");
     set.add("Zhihu");
     set.add("Runoob");  // HashSet不允許重複,因此重复的元素不会被添加
                         // HashMap則是重複的值會複寫原本的值
                         
     set.remove("Runoob"); //刪除"Runoob" // HashSet刪除是直接指定元素刪除
     set.clear();//刪除所有=> {}                    
     

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言