java集合类List的使用

来源:互联网 发布:安庆天际网络 编辑:程序博客网 时间:2024/05/18 23:55

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;

public class testCollection {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
       List<String> a=new LinkedList<String>();
       a.add("a1");a.add("a2");a.add("a3");a.add("a4");a.add("a5");a.add("a6");
      
       List<String> b=new LinkedList<String>();
       b.add("b1");b.add("b2");b.add("b3");b.add("b4");b.add("b5");b.add("b6");
       System.out.println(a);
       System.out.println(b);
      
       /*ListIterator 对象能对链表进行添加删除操作,并能向前向后遍历链表*/
       ListIterator aIter=a.listIterator();
       aIter.add("aADD1");
       aIter.next();
       aIter.add("aADD2");
       aIter.next();
      
       /*进行remove之前,先进行next操作,否则有异常,remove是删除前面一次next返回的元素
        * 上一次next之后链表结构发生变化将会抛出异常,所以在进行一次next*/
       aIter.remove();
       System.out.println(a);
       String temp=a.set(3,"test");//以一个新元素取代指定位置元素,并返回原来那个元素
       System.out.println(temp);
       /*Iterator 对象不能对链表进行添加删除操作,并只能向后遍历链表,只是迭代器*/
       Iterator bIter=b.iterator();
       while(bIter.hasNext())
        System.out.print(bIter.next()+" ");
       System.out.println();
       /*merge the words fromb into a*/
       aIter=a.listIterator();
       bIter=b.iterator();
       while(bIter.hasNext())
       {
        if(aIter.hasNext())
         aIter.next();
        aIter.add(bIter.next());
       }
       System.out.println(a);
       /*remove every second word from b*/
       bIter=b.iterator();
       while(bIter.hasNext())
       {
        bIter.next();
        if(bIter.hasNext())
        {
         bIter.next();
         bIter.remove();
        }
       }
       /*bulk operation: remove all words in b from a*/
       a.removeAll(b);
       System.out.println(a);
       aIter=a.listIterator();
       while(aIter.hasNext())
       {
        aIter.next();
        /*以一个新元素取代next或者previous方法访问的那个元素。如果列表结构在上次调用next或
         * previous方法之后被修改,将会抛出illegalStatesException异常*/
        aIter.set("change");
       }
       System.out.println(a);
 }
}

 

程序输出结果:

[a1, a2, a3, a4, a5, a6]
[b1, b2, b3, b4, b5, b6]
[aADD1, a1, aADD2, a3, a4, a5, a6]
a3
b1 b2 b3 b4 b5 b6
[aADD1, b1, a1, b2, aADD2, b3, test, b4, a4, b5, a5, b6, a6]
[aADD1, a1, b2, aADD2, test, b4, a4, a5, b6, a6]
[change, change, change, change, change, change, change, change, change, change]