zoukankan      html  css  js  c++  java
  • java List集合

    List集合包括四种类,分别是ArrayList、LinkedList、Vector、Stack。

    ArrayList:元素的存储是顺序存储,可以根据数组的下标查询,查询速度快,但是在删除和插入元素时将慢,需要移动大量的元素。

        public void Test1()
        {
            ArrayList arrayList=new ArrayList<>();
            
            long startTime=    System.currentTimeMillis();
            arrayList.add(2);
            arrayList.add(3);
            arrayList.add("water");
            arrayList.add("driver");
            arrayList.add(999);
            arrayList.add("angel");
            
            arrayList.remove(0);
            arrayList.remove(4);
            
            for (Object item : arrayList) {
                System.out.println(item);
            }
            long endTime=System.currentTimeMillis();
            System.out.println("运行时间为:"+(endTime-startTime)+"ms");
        }

    上述例子中我试着读出其运行时间进行比较,实在太快了。

    LinkedList:元素在其中存储是随机存储,首先说明LinkedList是一个双向链表,通过pre,element,next,每个元素都是由这3部分组成,它的优点在于删除,插入时只需要断开和连接删除位置的指针即可,不需要大量的移动元素。

        public void Test2()
        {
            LinkedList linkedList=new LinkedList<>();
            linkedList.add(888);
            linkedList.add(999);
            linkedList.add("blue");
            linkedList.add("sky");
            linkedList.add("waiter");
            linkedList.add("grass");
            linkedList.add(1314);
            
            linkedList.remove(1);
            linkedList.remove(4);
            
            for (Object item : linkedList) {
                System.out.println(item);
            }
        }

    在这中间加一点迭代器的一些知识,既然是集合就会存在迭代的问题

    public static void main(String[] args)
        {
            Collection c=new Vector<>();
            for(int i=0;i<10;i++)
            {
                c.add(i);
            }
            
            Iterator it=c.iterator();
            while(it.hasNext())
            {
                System.out.println(it.next());
            }
        }

    在一个集合中,使用了iterator()方法,就返回了一个迭代器类型,hasNext()表示迭代器中是否还有元素,next()表示迭代器中的下一个元素。

    当然上介绍的ArrayList和LinkedList集合类在多线程中都是不安全的,下面引入安全类Vector类:

    public static void main(String[] args)
        {
            Collection c=new Vector<>();
            for(int i=0;i<10;i++)
            {
                c.add(i);
            }
            
            Iterator it=c.iterator();
            while(it.hasNext())
            {
                System.out.println(it.next());
            }
        }
  • 相关阅读:
    On the fly test
    Spec Explorer 工具学习
    C# Static修饰符的作用
    [转]C#静态方法与非静态方法的比较
    如何获取网站服务器运行状态
    C#快速整理代码格式
    UI auto程序结构组织方式
    TestClass必须是public的
    VS2012如何显示行号
    Error: member names cannot be the same as their enclosing type
  • 原文地址:https://www.cnblogs.com/Optimism/p/10517986.html
Copyright © 2011-2022 走看看