java.util包下的三中集合 及 Iterator接口

java.util包
Collection接口、List接口、Set接口、Map接口(Iterator接口)


集合可以理解爲用來在內存中存放一組對象的容器,java中有三種集合類:


(1)List 來自Collection接口,實現類有序可重複,集合中的每一個對象都有一個惟一的順序位置,通過它們的下標表示出來,遍歷的時候可以按照它們的下標順序逐一訪問。主要有ArrayList、LinkedList、Vector三種實現類。

(2)Set  來自Collection接口,實現類無序不可重複,也就是說集合中的對象無序且互異,可以通過迭代的方式進行遍歷。主要有HashSet、TreeSet兩種實現類。(往集合中添加元素時,如果有重複的元素會被覆蓋掉)

(3)Map  實現類裏存放鍵值對(映射)。一種對象稱爲key,一種稱爲value,其中key不能重複,但value能重複,由於存放的對象數量與上面兩種不同,所以在選擇使用Map時是很方便的,遍歷Map時可以先用迭代器得到key,再通過key與value的對應得到value。主要有HashMap、HashTale、TreeMap三種實現類。(key不能重複,其實實質上和集合Set是一樣的,添加元素(key)重複,也會覆蓋)


附:數組與集合的區別:
   數組用於存儲統一類型的數據,有固定的長度;集合可以存儲不同類型的數據,沒有固定的大小。


Iterator接口實現類是獲取集合中元素的過程,實際上幫助獲取集合中的元素。也就是通過迭代實現遍歷集合中的元素。
起有三種方法:hasNext()  如果仍有元素可以迭代,則返回 true。
     next()     返回迭代的下一個元素。
     remove()   從迭代器指向的集合中移除迭代器返回的最後一個元素(可選操作)。


下面舉一個Map用迭代遍歷的例子:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;


public class MapTest {

public void testMap(){
//創建一個集合map
Map<Integer, String> map = new HashMap<Integer,String>();
map.put(1, "aaa");
map.put(2, "bbb");
map.put(3,"ccc");
map.put(2, "ddd");

System.out.println(map);
//獲取key集合(Set)
Set<Integer> set = map.keySet();
Iterator<Integer> it = set.iterator();
while(it.hasNext()){
int key = it.next();
//通過key獲取對應的value值
String value = map.get(key);
System.out.println("key="+key+"  value="+value);
}

}
//主函數   實現程序
public static void main(String[] args) {
Test test = new Test();
test.testMap();
}


}


運行結果:      {1=aaa, 2=ddd, 3=ccc}
key=1  value=aaa
key=2  value=ddd
key=3  value=ccc


實驗小結: 由結果可看出,遍歷Map可以用迭代先找出key的值,再通過key找出value的值;
     輸入的(2,"aaa")被(2,"ddd")覆蓋掉了;
             迭代遍歷元素的方法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章