1. 程式人生 > >java中常用的幾種集合型別

java中常用的幾種集合型別

集合就像陣列一樣,用來存放東西
常用的集合分為List(有序排放)、Map(以名和值一一對應的存放)、Set(既無序也沒名)
在這三者之中其中List和Set是Collection介面的子介面,而Map不是Collection介面的子介面
首先介紹的是集合
一、List:
為了學習List,這裡介紹List的實現類:ArrayList和LinkedList
①ArrayList:索引從0開始,線性儲存,有索引,有順序
主要方法:add()用於往集合中新增元素,get()用於獲取指定索引處的元素,size()獲得集合的長度,相當於陣列中的length
②LinkedList:也是線性儲存,有索引,有順序
它和ArrayList差不多,它有ArrayList集合中不具備的方法,如:addFirst(Object)這是往list集合的最前邊新增元素的方法,相應的還有addLast等
③ArrayList和LinkedList的區別和聯絡:
linkedlist集合的優勢:新增元素時可以指定位置,比ArrayList集合新增元素要快很多。
但Linkedlist在get獲取的時候比Arraylist集合要慢的多,而且獲取元素越往後檢索的越慢。
 這兩種方式各有優缺,為更好的使用可以將這兩者進行聯合使用,使用Linkedlist集合進行儲存和新增元素,使用Arraylist集合進行get獲取元素。


二、Map:名字和值一一對應,是無序的,有名且名字不能重複

為學習Map,先從它的實現類HashMap學起。
給map新增元素是使用put方法進行新增。map.put("名",值)
獲得是get(名)
在map中只要得到全部的名字就能得到所有的值
這就需要用到set來獲得所有的名字:
Set keyname=map.keySet();
使用Set中的迭代器:
Iterator it=keyname.iterator();
while(it.hasNext()){
Object key=it.next(); 名
Object value=map.get(key); 值
}


三、Set:既不需要有編號也不需要有名,來了就往裡放,存放速度相對較快,但取不好取

這裡就常用HashSet(set的實現類)
新增元素為add()
變數獲取元素:使用它的iterator()方法是執行迭代器的工具
Iterator it=set.iterator();
it.hashNext();  判斷下一個是否有
it.Next();下一個
使用while(it.hasNext()){
system.out.println(it.next());
} 輸出也是無序的。