J2SEI:集合類

什麼是集合類?

集合類存放於java.util包中。集合類存放的都是對象的引用,而非對象自己,出於表達上的便利,咱們稱集合中的對象就是指集合中對象的引用。java

集合類型主要有:

map(映射):數組

其主要實現類有HashMap、TreeMap;安全

Map對值沒有惟一性要求,對健要求惟一,若是加入已有的健,原有的值對象將被覆蓋;線程

Hashtable基於線程安全,效率低,古老, HashMap基於非線程安全,效率高。code

Collection:對象

collection是最多見的集合的上級接口。排序

繼承自collection的經常使用接口有List,Set,都是單列的集合。繼承

set(集):接口

1)Set實現的基礎是Map(HashMap);hash

2)主要實現類有HashSet、TreeSet;

​ HashSet(),調用對象的hashCode()方法,得到哈希碼,而後再集合中計算存放對象的位置。

​ TreeSet(),繼承ShortedSet接口,可以對集合中對象排序。

3)Set中的元素是不能重複的,若是使用add(Object obj)方法添加已經存在的對象,則會覆蓋前面的對象;

 public class SetTest {

    public static void main(String[] args) {
      Set set=new HashSet();
       //添加數據
      set.add("abc");
      set.add("cba");
      set.add("abc");//故意重複
      set.add(123);
      set.add(true);
 
      System.out.println("集合元素個數:"+set.size());
       //遍歷出集合中每個元素
      Iterator it=set.iterator();
      while(it.hasNext()){
        System.out.println(it.next());
       }
    }
  }

【經過java的equals()方法判別。若是有特殊需求須重載equals()方法。】

list(列表):

主要實現類:

LinkedList:實現了鏈表結構,底層雙向鏈表,查詢慢,增刪快;

ArrayList:可表明大小可變的數組;

底層是數組實現,線程不安全,效率高,查詢比較高,增刪效率低;

List和Set的特性和區別:

  1)首先list和set都是單列集合;

  2)list裏面的元素是有序的可重複的;

  3)set集合裏面的元素是無序的不可重複的;

  4)list集合能夠根據下標獲取對應的元素,而set則只能遍歷所有集合才能獲取對應的元素;

相關文章
相關標籤/搜索