【Java基礎】--Java容器剖析:Set、List、Map介面

ZeroWM發表於2015-10-25

  
  上篇部落格主要講了容器的總介面Collection,這篇部落格要介紹一下實現Collection介面的子介面:Set、List、Map。
  
  這裡寫圖片描述
  

Set介面

  Set介面是Collection的子介面,Set介面沒有提供額外的方法,但實現Set介面的容器類中的元素是無序的,而且不可以重複。
  J2SDK API中提供的Set容器有HashSet,TreeSet等。
這裡寫圖片描述
  

List介面

  也為Collection的子介面,實現List介面的容器類中的元素是有序的,而且可以重複。List容器中的元素都對應一個整數型的序號記載其在容器中的位置,可以根據序號存取容器中的所有元素。
  J2SDK API中提供的List容器有ArrayList,LinkedList等。
這裡寫圖片描述
這裡寫圖片描述
  

Map介面

  實現Map介面的類用來存取鍵——值對。
  Map介面中儲存的鍵——值對通過鍵來標識,所以鍵不能重複。

    import java.util.*;
    public class Main {
        public static void main(String[] args) {
            Map m1=new HashMap();
            Map m2=new TreeMap();
            m1.put("one", new Integer(1));
            m1.put("two", new Integer(2));
            m1.put("three", new Integer(3));
            m2.put("A",new Integer(1));
            m2.put("B", new Integer(2));
            System.out.println(m1.size());
            System.out.println(m1.containsKey("one"));
            System.out.println(m2.containsValue(new Integer(1)));
            if(m1.containsKey("two")){
                int i =((Integer)m1.get("two")).intValue();
                System.out.println(i);
            }
            Map m3=new HashMap(m1);
            m3.putAll(m2);//合併兩個map
            System.out.println(m3);



        }   
    }

輸出結果:

這裡寫圖片描述

在合適的時機可以自動的打包和解包(JDK1.5後被支援)。
1.自動將基礎型別轉換為物件
2.自動將物件轉換為基礎型別

這裡寫圖片描述

如何選擇資料結構呢?

  1. ArrayList讀快改慢
  2. LinkedList改快讀慢
  3. Hash介於兩者之間

總結

List:元素放入有序,可重複
Set:元素放入無序,不可重複
Map:元素按鍵值對放入 ,無序

相關文章