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

猜你喜欢

转载自www.cnblogs.com/Optimism/p/10517986.html