zoukankan      html  css  js  c++  java
  • LinkedList类 和ArrayList类

    1)LinkedList类 
      LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在 LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。

    注意:LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List:List list = Collections.synchronizedList(new LinkedList(…));

    2) ArrayList类 
      ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并 没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。

    和LinkedList一样,ArrayList也是非同步的(unsynchronized)。一般情况下使用这两个就可以了,因为非同步,所以效率比较高。 
    如果涉及到堆栈,队列等操作,应该考虑用List,对于需要快速插入,删除元素,应该使用LinkedList,如果需要快速随机访问元素,应该使用ArrayList。

  • 相关阅读:
    SQL Server 系统视图
    T-SQL 批处理
    T-SQL游标
    SQL Server执行计划的理解
    SQL Server 非聚集索引的覆盖,连接,交叉和过滤 <第二篇>
    SQL Server 分区表
    SQL Server 文件和文件组
    SQL Server逻辑读、预读和物理读
    mysql 报错ERROR 1064 (42000),原因使用了mysql保留字 (right syntax to use near 'groups)
    docker Redis的主从配置
  • 原文地址:https://www.cnblogs.com/lixxx/p/10761056.html
Copyright © 2011-2022 走看看