集合的特性
可以依照集合是否具有「自動排序性」、「重複性」、「次序性」及「使用關鍵值」,為資料選擇適合儲存的集合物件:
(1)自動排序性:自動將加入集合的元素做遞增或遞減的排序。
(2)重複性:集合中的元素是否允許存在相同的物件。
(3)次序性:元素是否會依加入集合時的順序依次排序。
(4)使用關鍵值:利用關鍵值存放元素,一個關鍵值(key)對照一個對應值(value),因此關鍵值的內容必須是唯一存在。
for-each迴圈
for(元素型態 迴圈控制變數 : 集合或陣列名稱){
//迴圈主體;
for-each迴圈控制變數的形態要與集合或陣列裡的元素型態相同。
...
for(String i : test) //走訪
System.out.println(i+" ");
使用for-each迴圈時要注意以下幾點:
(1)只能從頭開始訪問每個元素,不能從集合或是陣列尾端向前走訪。
(2)只能取出集合或陣列裡的元素而不能置換它。
(3)for-each迴圈裡面的變數是區域變數。
(4)只能適用於JAVA 5.0以後的版本。
使用for-each迴圈可以走訪集合內的元素,但若是要使用更多存取的集合的功能,如取出子及何等,就必須靠JAVA提供的其他介面,如:Iterator、ListIterator等介面完成。
Iterator走訪元素
Iterator物件只能從頭讀到尾,同時當我們已讀取過資料,就不能將元素從頭再讀取一次。
Iterator itr = tset.iterator();
用tset呼叫iterator(),以便取得Iterator物件itr。
...
TreeSet<String> tset = new TreeSet<String>();
...
Iterator<String> itr = tset.iterator(); //取得iterator物件
while(itr.hasNext()){ //走訪元素
str = itr,next();
System.out.println(str+" "); //印出元素內容
}
itr.remove(); //刪除最後讀取的元素
System.out.println("TreeSet: "+tset);
利用Iterator走訪物件最大的好處是,它可以用統一的方式走訪不同的集合裡的元素。而且Iterator物件的讀取是單向且只能讀一次。
ListIterator走訪元素
ListIterator物件的走訪則可以是雙向的,有就是說可以從頭到尾(正向),也可以從最後一個元素逆向讀取到第一個元素(逆向)。
ListIterator litr = llist.listIterator();
...
LinkedList<Integer> llist = new LinkedList<Integer>();
llist.add(5); //加入元素
llist.add(7);
llist.add(10);
llist.add(13);
ListIterator<Integer> litr1 = llist.listIterator();
while(litr1.hasNext()) //正向走訪元素
System.out.println(litr.next()+" "); //印出元素內容
ListIterator<Integer> litr2 = llist.listIterator(llist.size());
while(litr2.hasPrevious()) //反向走訪元素
System.out.println(litr2.previous()+" "); //印出元素內容
當hasNet()或hasPrevious()傳回值為false時,該ListIterator物件也就沒有任何的可用之處,除非再重新取得ListIterator物件。
星期五啦啦啦啦啦啦~~
10月的天秤座朋友們生日到來了!!!:))
See U tomorrow~~
菜鳥工程師也有分享食記,歡迎大家追蹤喔~~
https://instagram.com/engineer_bodyfat?utm_medium=copy_link