數據結構定義:
是以某種形式將數據組合在一起的集合。數據結構不僅保存數據,還支持訪問和處理數據的操作。在面向對象思想裡,一種數據結構也被認為是一個容器(container),它是一個能存儲其他對象的對象。
Java集合框架:
在Java中,數據結構通常稱為Java集合框架(Java Collection Framework)。
Java框架支持的兩種容器:
一種是為了存儲一個元素集合,一般稱為集合(collection)
另一種是為了存儲鍵/值對(key/value),稱為圖(map)
根接口:Collection
Collection接口是處理對象集合的根接口。我們知道,接口下面有很多方法,而Collection的派生類既完成這些方法,也相應添加和自己相關操作的方法。Collection接口的方法如下:
boolean add(o:E) //添加元素
boolean addAll(c:Collection<? extends E>) //將集合c中的所有元素添加給這個集合
void clear(); //刪除
boolean contains(o:Object)//若集合包含包含元素o則返回ture
boolean containsAll(c:Collection<?>) //包含c中所有的元素
boolean equals(o:Object) //集合間是否相等
void hasCode()//散列碼
boolean isEmpty() //集合不包含任何元素
Interator<E> iterator()//集合中元素迭代器
boolean remove(o:Object)//刪除元素o
boolean removeAll(c:Colection<?>)//從集合中刪除c中的所有元素
boolean retainAll(c:Colection<?>)//保留c和該集合都有的元素,相當於兩個集合求交集
int size() //返回大小
Object[] toArray() //返回該集合的元素構成的數組Object
從圖中可以看出,在Collection集合中,有三種不同類型的集合,分別為Set(規則集),List(線性表),Queue(隊列)
1 Set(規則集)
大體注意幾點:首先,規則集是沒有重復的元素的,其次,從Set派生的具體類有:散列類(HasSet),鏈式散列集(LinkedHashSet)和樹形集TreeSet。
其中HasSet(散列集)因其沒有特定的順序,所以其輸出時沒有固定順序的,如下程序輸出的時候並不按照調用add的順序輸出的。
package gibbon.collection.set;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class TestHashSet {
public static void main(String[] args){
Set<String> set = new HashSet<String>();
set.add("Beijing");
set.add("Shanghai");
set.add("Guangzhou");
set.add("Shenzhen");
set.add("Beijing");
System.out.println(set);
Iterator<String> iterator = set.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next().toUpperCase() + " ");
}
}
}
輸出如下:
[Shenzhen, Guangzhou, Shanghai, Beijing]
SHENZHEN
GUANGZHOU
SHANGHAI
BEIJING
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2013-10/92069p2.htm