List接口是collection的子接口辖所,List定義的集合容器擁有下標(biāo)擅笔,可以根據(jù)下表來(lái)操作集合中的元素。List集合可存放重復(fù)元素汹押】篌荩可存放多個(gè)null元素。
List中的方法add()可以在某一角標(biāo)位置添加棚贾,添加時(shí)要注意窖维,添加的上一個(gè)位置一定要有數(shù)據(jù),不然運(yùn)行時(shí)會(huì)報(bào)錯(cuò)妙痹。
import java.util.ArrayList;
import java.util.List;
public class CollectionDemo {
public static void main(String[] args) {
List l=new ArrayList();
l.add("aaaaaaaa");
l.add(1,"element");
l.add(1,null);
l.add(1,null);
System.out.println(l);
Object o=l.get(3);
Object o1=l.remove(3);
Object o=l.set(3);
System.out.println(o);
System.out.println(o1);
}
}
List接口中g(shù)et方法是得到某一位置的數(shù)據(jù)铸史,set方法是刪除某一位置的數(shù)據(jù)。remove方法返回的是被刪除的數(shù)據(jù)怯伊。
List接口下的集合擁有下標(biāo)琳轿,因此List接口下的集合容器可以通過(guò)下標(biāo)來(lái)遍歷。
這里演示了三種遍歷數(shù)據(jù)的方法:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class CollectionDemo {
public static void main(String[] args) {
methord();
methord1();
methord2();
}
private static void methord2() {
// TODO Auto-generated method stub
List l = new ArrayList();
l.add("aaaaaaaa");
l.add(1, "element");
ListIterator lis = l.listIterator();
while (lis.hasNext()) {
System.out.println(lis.next());
}
}
private static void methord1() {
// TODO Auto-generated method stub
List l = new ArrayList();
l.add("aaaaaaaa");
l.add(1, "element");
for (int i = 0; i < l.size(); i++) {
System.out.println(l.get(i));
}
}
private static void methord() {
// TODO Auto-generated method stub
List l = new ArrayList();
l.add("aaaaaaaa");
l.add(1, "element");
for (Iterator i = l.iterator(); i.hasNext();) {
System.out.println(i.next());
}
}
}
listIterator是list特有的迭代器耿芹,他是繼承Iterator的崭篡。不過(guò)它的特殊之處在于在迭代過(guò)程中可以修改數(shù)據(jù),以任意方向迭代數(shù)據(jù)吧秕。
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class CollectionDemo {
public static void main(String[] args) {
methord2();
}
private static void methord2() {
// TODO Auto-generated method stub
List l = new ArrayList();
l.add("aaaaaaaa");
l.add(1, "element");
ListIterator lis = l.listIterator();
while (lis.hasNext()) {
Object obj = lis.next();
if (obj.equals("element")) {
lis.add("lishuaishuai");
}
}
while (lis.hasPrevious()) {
System.out.println(lis.previous());
}
}
}