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);
 
 
    }
 
}
 

ArrayList 、Vector、 LinkList的更多相关文章

  1. ArrayList、LinkedList、Vector、Array和HashMap、HashTable

    就 ArrayList 与 Vector 主要从二方面来说. 一.同步性:Vector 是线程安全的,也就是说是同步的,而ArrayList 是线程序不安全的,不是同步的 二.数据增长:当需要增长时, ...

  2. ArrayList、Vector、LinkedList的区别联系?

    1.ArrayList.Vector.LinkedList类都是java.util包中,均为可伸缩数组. 2.ArrayList和Vector底层都是数组实现的,所以,索引数据快,删除.插入数据慢. ...

  3. ArrayList、Vector、LinkedList源码

    List接口的一些列实现中,最常用最重要的就是这三个:ArrayList.Vector.LinkedList.这里我就基于JDK1.7来看一下源码. public class ArrayList< ...

  4. List接口实现类-ArrayList、Vector、LinkedList集合深入学习以及源代码解析

    学习List接口实现类 ArrayList  Vector  LinkedList List接口的实现类中最经常使用最重要的就是这三个:ArrayList.Vector.LinkedList. JDK ...

  5. ArrayList、Vector、LinkedList的特点和区别

    ArrayList.Vector.LinkedList类均在java.util包中,均为可伸缩数组. 1)ArrayList和Vector都是基于存储元素的Object[] array来实现的,它们会 ...

  6. 说说JDK中的List-ArrayList、Vector、LinkedList

    为方便开发人员,JDK提供了一套主要数据结构的实现,比如List.Map等.今儿说说List接口. List接口的一些列实现中,最常用最重要的就是这三个:ArrayList.Vector.Linked ...

  7. ArrayList、Vector、HashMap、HashSet

    1. list  和 set 的有序无序是否可重复 List是有序可重复的: Set是无序不可重复的: 2.ArrayList.Vector.HashMap.HashSet的默认初始容量.加载因子.扩 ...

  8. [Java]ArrayList、LinkedList、Vector、Stack的比较

    一.介绍 先回顾一下List的框架图 由图中的继承关系,可以知道,ArrayList.LinkedList.Vector.Stack都是List的四个实现类. AbstractList是一个抽象类,它 ...

  9. ArrayList、Vector、LinkedList的区别

    ArrayList.Vector.LinkedList的区别 1.底层数据结构: ArrayList底层实现是动态数组 Vector底层实现是动态数组 LinkedList底层实现是双链表  2.扩容 ...

  10. ArrayList、Vector、LinkedList 区别及底层实现

    一.ArrayList.Vector.LinkedList 三者区别 1.ArrayList  底层:是数组结构,查询快,增删慢,线程不安全,效率高.2.LinkedList底层:是链表数据结构,查询 ...

随机推荐

  1. 关于mssql数据库锁和事务隔离级别

    事务隔离级别有4种,这4种级别只是对于读操作,也就是select有不同程度的支持, 读未提交:不会对事务里读出来的数据附加任何锁 读已提交:会对事务里读出来的数据附加共享锁,读完就释放共享锁,其他事务 ...

  2. vim备注

    ① 用户path生效 在~/.bashrc中修改path,在~/.profile中source bashrc ② secureCRT着色方案 底色RGB:43 43 43 前景色RGB:221 221 ...

  3. C#入门经典(第五版)学习笔记(三)

    ---------------面向对象编程简介--------------- UML表示方法: 1)方框上中下三分 2)上框写类名 3)中框写属性和字段,例如:+Description:string  ...

  4. 输出内容(document.write)

    document.write() 直接在页面中输出内容 第一种 直接输出 document.write("I Love Javascript !") //输出内容为:I Love ...

  5. 常见的iis日志代码!

    2xx  成功 200  正常:请求已完成. 201  正常:紧接 POST 命令. 202  正常:已接受用于处理,但处理尚未完成. 203  正常:部分信息 — 返回的信息只是一部分. 204   ...

  6. 性能测试实践-linux

    需求:线上系统性能优化,查找服务器和线上系统瓶颈 根据线上经验数据及期望值定量 数据   up down 线上数据 50 500 测试数据 100 500~2000+ 测试数据 200 500~200 ...

  7. [转]jQuery,javascript获得网页的高度和宽度

    网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网页可见区域宽: document.body.offsetWi ...

  8. JS设置Cookie,及COOKIE的限制

    在Javascript脚本里,一个cookie 实际就是一个字符串属性.当你读取cookie的值时,就得到一个字符串,里面当前WEB页使用的所有cookies的名称和值.每个cookie除了 name ...

  9. Python新手学习基础之初识python——与众不同2

    看完了Python的缩进,现在来看看Python的标识符.引号和注释. 标识符 关于Python的标识符,其实不是与众不同,只是有一定的规则. 标识符是编程时使用的名字.在Python中,标识符有几点 ...

  10. ArcGis Engine 读取自定义prj坐标系文件时,中文名称乱码

    今天测试时发现使用ArcMap自定义一个坐标系,将坐标系名称设置为中文,基准面名称选择为自定义后,然后保存成prj文件. 在自己的程序中读取该prj文件后,发现ISpatialReference 对象 ...