Java中的Set,List,Map的區別

   對JAVA的集合的理解是相對於數組,數組是大小固定的,並且同一個數組只能存放類型一樣的數據(基本類型/引用類型)。 JAVA集合可以存儲和操作數目不固定的一組數據。

  所有的JAVA集合都位於 java.util包中!

  JAVA集合只能存放引用類型的的數據,不能存放基本數據類型.

JAVA集合主要分爲三種類型:

  Set(集)

  List(列表)

  Map(映射)

Collection 接口: Collection是最基本的集合接口,聲明瞭適用於JAVA集合(只包括Set和List)的通用方法。

  :Set 和List 都繼承了Conllection,Map沒有

Collection接口的方法:

  boolean add(Object o)   :向集合中加入一個對象的引用

  void clear()                        :刪除集合中所有的對象,即不再持有這些對象的引用

  boolean isEmpty()           :判斷集合是否爲空

  boolean contains(Object o): 判斷集合中是否持有特定對象的引用

  Iterartor iterator()              : 返回一個Iterator對象,可以用來遍歷集合中的元素

  boolean remove(Object o):從集合中刪除一個對象的引用

  int size()                               :返回集合中元素的數目

  Object[] toArray()                 :返回一個數組,該數組中包括集合中的所有元素

關於:Iterator() 和toArray() 方法都用於集合的所有的元素,前者返回一個Iterator對象,後者返回一個包含集合中所有元素的數組。

 

Iterator接口聲明瞭如下方法:

  hasNext(): 判斷集合中元素是否遍歷完畢,如果沒有,就返回true

  next()       :返回下一個元素

  remove():從集合中刪除上一個有next()方法返回的元素。

Set(集合):

  Set是最簡單的一種集合。集合中的對象不按特定的方式排序,並且沒有重複對象。

 Set接口主要實現了兩個實現類:

  HashSet : HashSet類按照哈希算法來存取集合中的對象,存取速度比較快

  TreeSet   : TreeSet類實現了SortedSet接口,能夠對集合中的對象進行排序。

 Set 的用法:

  存放的是對象的引用,沒有重複對象

  Set set=new HashSet();

  String s1=new String("hello");

  String s2=s1;

  String s3=new String("world");

  set.add(s1);

  set.add(s2);

  set.add(s3);

  System.out.println(set.size());//打印集合中對象的數目 爲 2。

  Set 的 add()方法是如何判斷對象是否已經存放在集合中?

  boolean isExists=false;

  Iterator iterator=set.iterator();

  while(it.hasNext())           {

  String oldStr=it.next();

  if(newStr.equals(oldStr)){

  isExists=true;

  }

  }

 

List(列表):

  List的特徵是其元素以線性方式存儲,集合中可以存放重複對象。

 List接口主要實現類包括:

  ArrayList() : 代表長度可以改變得數組。可以對元素進行隨機的訪問,向ArrayList()中插入與與刪除元素的速度慢。

  LinkedList(): 在實現中採用鏈表數據結構。插入和刪除速度快,訪問速度慢。

  對於List的隨機訪問來說,就是隻隨機來檢索位於特定位置的元素。

  List 的 get(int index) 方法放回集合中由參數index指定的索引位置的對象,下標從“0” 開始。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章