zoukankan      html  css  js  c++  java
  • Java ArrayList,LinkedList使用

    1、ArrayList底层采用数组实现,当使用不带参数的构造方法生成ArrayList对象时,实际上回在底层生成一个长度为10的Object类型数组。

    2、如果增加的元素个数超过10个,那么ArrayList底层会将数组长度扩大到原数组的1.5倍。

    3、对ArrayList元素的删除操作,需要将被删除元素的后续元素向前移动,代价比较高。

    4、关于ArrayList与LinkedList的比较分析

    a) ArrayList底层采用数组实现,LinkedList底层采用双向链表实现

    b)当执行插入或删除操作是,采用LinkedList比较好。

    c)当执行搜索操作时,采用ArrayList比较好。

     5、当向ArrayList添加一个对象时,实际上就是将该对象放置到了ArrayList底层所维护的数组当中; 当向LinkedList中添加一个对象时,实际上LinkedList内部会生成一个Entry对象,该Entry对象的结构为:

    Entry{

      Entry previous;

      Object element;

      Entry next;

    }

    其中的Object类型的元素element就是我们向LinkedList中所添加的元素,然后Entry又构造好了向前与向后的引用previous、next,最后将生成的这个Entry对象加入到了链表当中。换句话说,LinkedList中所维护的是一个个Entry对象

    6、使用LinkedList实现队列Queue

    public class MyQueue {
    	
    	private LinkedList list = new LinkedList();
    	
    	public void put(Object obj){
    		list.add(obj);
    	}
    	public Object get(){
    		return list.removeFirst();
    	}
    	
    	
    	public boolean isEmpty(){
    		return list.isEmpty();
    		
    	}
    	
    	public static void main(String[] args) {
    		MyQueue myQueue = new MyQueue();
    		myQueue.put("one");
    		myQueue.put("two");
    		myQueue.put("three");
    		
    		System.out.println(myQueue.get());
    		System.out.println(myQueue.get());
    		System.out.println(myQueue.get());
    		
    		System.out.println(myQueue.isEmpty());
    	}
    	
    	
    }
    

      打印结果

  • 相关阅读:
    HGOI20191115 模拟赛 题解
    HGOI20191114 CSP模拟赛 反思
    HGOI 20191108 题解
    HGOI 20191107 题解
    HGOI 20191106 题解
    HGOI 20191105 题解
    HGOI 20191103am 题解
    HGOI 20191101am 题解
    HGOI 20191031am 题解
    新的博客!!!
  • 原文地址:https://www.cnblogs.com/linlf03/p/10959594.html
Copyright © 2011-2022 走看看