ArrayList 、Vector、 LinkList

时间:2022-04-24 18:20:55
public class TestList
{
    public static void init(List list)
    {
        if(list!=null)
        {
            list.add("aaa");
            list.add("bbb");
            list.add("ccc");
            list.add("eee");
            list.add("ddd");
        }
    }
    public static void output(List list)
    {
        if(list!=null)
        {
 
         for(int i=0;i<list.size();i++)
                 System.out.print(list.get(i)+"  ");
                    System.out.println();
        }
    }
    public static void testArrayList()
    {
        List list=new ArrayList();
        init(list);
        System.out.println("使用ArrayList:");
        output(list);
 
    }
    public static void testVector()
    {
        List list=new Vector();
        init(list);
        System.out.println("使用Vector:");
        output(list);
 
    }
    public   static void testLinkList()
    {
        List list=new LinkedList();
        init(list);
        System.out.println("使用Linklist:");
        output(list);
    }
    public static void main(String[] args)
    {
         TestList.testArrayList();
         TestList.testVector();
         TestList.testLinkList();
         List list=new ArrayList();
         list.add("aaa");
         list.add("bbb");
         System.out.println("插入元素后");
         output(list);
         list.add(1,"fff");
         System.out.println("指定位置插入元素后");
         output(list);
         List list2=new ArrayList();
         list2.add("ggg");
         list2.add("hhh");
         list2.add("aaa");
         list.addAll(list2);//将一个表2插入到表1后面
         System.out.println("将一个表2插入到表1后面");
         output(list);
         System.out.println("是否包含“aaa” "+list.contains("aaa"));
         System.out.println("是否全部包含list2 "+list.containsAll(list2));
         System.out.println("第一次出现aaa的位置   "+list.indexOf("aaa"));
         System.out.println("最后一次出现aaa的位置   "+list.lastIndexOf("aaa"));
 
         //更新列表中某元素的值
         list.set(2, "xxx");
         System.out.println("更新之后的值   ");
         output(list);
         //删除某个元素  只删除第一次出现的位置
         list.remove("aaa");
         System.out.println("删除aaa之后的值   ");
         output(list);
         //删除指定位置的值
         list.remove(3);
         System.out.println("删除3位置之后的值   ");
         output(list);
 
        // list.retainAll(list2);//只保存list2中的元素
         //output(list);
 
         list.removeAll(list2);//移除list2中的元素
         output(list);
 
         list.clear();
         System.out.println("是否为空"+list.isEmpty());
         init(list);
         list2=list.subList(1, 3);//讲某一段赋给新的表
         output(list2);
 
         ListIterator it=list.listIterator();
         System.out.println("正向遍历列表");
         while (it.hasNext())
        {
             System.out.print(it.next()+"  ");
        }
         System.out.println();
         System.out.println("反向遍历列表");
         while(it.hasPrevious())
         {
             System.out.print(it.previous()+"  ");
         }
         System.out.println();
 
         LinkedList list3=new LinkedList();
         init(list3);
         list3.addFirst("qqqq");//插入表头的位置
         output(list3);
         list3.addLast("wwww");
         output(list3);
         System.out.println("获取表头元素"+list3.getFirst());
         System.out.println("获取表尾元素"+list3.getLast());
         System.out.println("删除表头元素后");
 
         list3.removeFirst();
         output(list3);
         System.out.println("删除表尾元素后");
         list3.removeLast();
         output(list3);
 
 
    }
 
}