標籤:
package Collection;/*Collection|--List:元素是有序的,元素可以重複。因為該集合體系有索引||--ArrayList:底層的資料結構使用的是數組結構 特點:查詢,修改速度很快,但是增刪稍慢。線程不同步||--LinkedList:底層使用的是鏈表的資料結構 特點:增刪速度很快,查詢稍慢||--Vector:底層是數組資料結構。線程同步。被ArrayList替代了|--set:元素是無序,元素可以重複List:集合特有的方法,凡是可以操作角標的方法都是該體系特有的方法增add(index,element);addall(index,Collection);刪remove(index);改set(index,element);查get(index);subList(from , to);listIterator();List 集合特有的迭代器。ListIterator是Iterator的子介面在迭代時,不可以通過集合對象的方法操作集合中的元素。因為會發生 Concurrent~~~ 異常。 所以,在迭代時,只能用迭代器的方法操作元素,可是 Iterator 方法是有限的,只能對元素 進行判斷,取出,刪除的操作。 如果想要其他的操作如添加,修改等,就要使用其子介面,Listiterator. 該介面只能通過List集合的listIterator方法擷取。 */import java.util.*;public class ListDemo{/** * @param args */public static void sop(Object obj){System.out.println(obj);}public static void method(){ArrayList<String> al = new ArrayList<String>();// addal.add("java01");al.add("java02");al.add("java03");sop("原集合:"+al);// 在指定位置添加元素al.add(1,"java09");// 刪除指定元素al.remove(2);// 修改元素al.set(0, "Java10");// 通過角標擷取元素sop("get(1):"+al.get(0));sop(al);// 擷取所有元素 for迴圈for(int x = 0;x<al.size();x++){System.out.println("al("+x+")="+al.get(x));}// 迭代器Iterator<String> it = al.iterator();while (it.hasNext()){sop("next: "+it.next());}// 通過 indexof 擷取對象的位置sop("indexof = "+al.indexOf("Java10"));List<String> sub = al.subList(0, 2);sop("sub = "+sub);}public static void main(String[] args){// TODO Auto-generated method stub// 示範列表迭代器ArrayList<String> alArrayList = new ArrayList<String>();alArrayList.add("Java01");alArrayList.add("Java02");alArrayList.add("Java03");sop(alArrayList);// 使用 ListIterator 介面ListIterator<String> li = alArrayList.listIterator();// 有沒有前一個元素// sop("hasPrevious()"+li.hasPrevious());while (li.hasNext()){Object obj = li.next();if(obj.equals("Java01")){// 添加// li.add("Java11");// 修改li.set("Java11");}}while (li.hasPrevious()){sop("Pre::"+li.previous());}// 有沒有後一個元素// sop("hasNext():"+li.hasNext());// sop("hasPrevious()"+li.hasPrevious());sop(alArrayList);/* * 使用 Iterator 介面// 在迭代過程中,準備添加或者刪除元素Iterator<String> iterator = alArrayList.iterator();while (iterator.hasNext()){// sop("next: "+iterator.next());Object obj = iterator.next();if (obj.equals("Java01")){// alArrayList.add("Java11");// 將 Java01 的引用從集合中刪除了iterator.remove(); }sop("Obj = "+obj);}*/}}
Java List集合特有方法程式用法