List集合存放的是有序可重復(fù)的對象,List每一個對象都有一個對應(yīng)的角標(biāo)逞刷,可以通過角標(biāo)來對集合里的對象進(jìn)行控制嘉涌。
List還有一個特點,它下的一個方法listIterator亲桥,能夠在迭代的時候?qū)线M(jìn)行增洛心,刪固耘,替換题篷,順序排序,逆序排序厅目。
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class JiHeDemo{
public static void main(String[] args) {
List l=new ArrayList();
l.add(1745);
l.add(1725);
l.add(1715);
ListIterator li=l.listIterator();
while(li.hasNext()){
Object o=li.next();
if(o.equals(1725)){
li.remove();
}
}
while(li.hasPrevious()){
System.out.println(li.previous());
}
}
}
順序排序之后番枚,對集合進(jìn)行修改之后,再次迭代集合只能逆序损敷。
ArrayList底層維護的是一個可變數(shù)組葫笼,因此存放的對象可以自定義。
需求:去除集合中的重復(fù)元素
import java.util.ArrayList;
import java.util.Iterator;
public class JiHeDemo{
public static void main(String[] args) {
ArrayList al=new ArrayList();
al.add("e");
al.add("a");
al.add("b");
al.add("c");
al.add("e");
al.add("e");
al.add("b");
al.add("b");
System.out.println("沒有更改前的集合對象"+al);
ArrayList newal=new ArrayList();
for (Iterator iterator = al.iterator(); iterator.hasNext();) {
Object object = (Object) iterator.next();
if(!newal.contains(iterator.next())){
newal.add(iterator.next());
}
}
al.clear();
al.addAll(newal);
System.out.println("刪去重復(fù)對象后的集合"+al);
}
}
發(fā)現(xiàn)一個有意思的事情當(dāng)定義一個迭代變量時打印出來的不存在a拗馒,c對象路星,不定義迭代變量,程序正常進(jìn)行诱桂,打印正常結(jié)果洋丐。