ArrayList与LinkedList

By | 01月23日
Advertisement

Collection:

Set and List

Set:

HashSet and TreeSet

List:

ArrayList and LinkedList and Vector(Vector与ArrayList基本相同,不同的是ArrayList是非线程安全的(不同步),LinkedList是线程安全的(同步))

Set:无序不重复

List:有序可重复

ArrayList:

ArrayList实际上是数组实现的,所以方便遍历。

LinkedList:

链表,适用于添加,删除

HashSet:

适合查找,因为查找时无需遍历(用到Map),性能极高。无get()方法,因为无序

Map(key=value):

HashMap and TreeMap (Collection与Map都是接口)

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class TestLinkedList {
    public static void main(String[] args){
        LinkedList<String> list = new LinkedList<String>();
        //ArrayList遍历快
        //linkedlist插入删除快
        //两个相互转换
        List<String> list1 = new LinkedList<String>();
        for(int i=0;i<100000;i++){
            list1.add("1");
        }
        list1.add(3, "a");
        List<String> list2 =new ArrayList<String>();
        list2.addAll(list1);
        for(String s:list2){
            System.out.println(s);
        }
    }
}



Similar Posts:

  • LintCode Reverse LinkedList (ArrayList 和 LinkedList 的区别)

    1. ArrayList 和 LinkedList 的区别 http://pengcqu.iteye.com/blog/502676 2. How to reverse LinkedList http://www.java2blog.com/2014/07/how-to-reverse-linked-list-in-java.html /** * Definition for ListNode. * public class ListNode { * int val; * ListNode ne

  • Java中针对 ArrayList和LinkedList 的区别

    一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针. 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据. ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references).例如

  • Java进阶(十七)ArrayList与LinkedList的区别

    ArrayList与LinkedList的区别 ArrayList ArrayList其实是包装了一个数组 Object[],当实例化一个ArrayList时,一个数组也被实例化,当向ArrayList中添加对象时,数组的大小也相应的改变.这样就带来以下优缺点: 快速随机访问.你可以随机访问每个元素而不用考虑性能问题,通过调用get(i)方法来访问下标为i的数组元素. 向其中添加对象速度慢.当你创建数组是并不能确定其容量,所以当改变这个数组时就必须在内存中做很多事情. 操作其中对象的速度慢.当你

  • Java Collections Framework - Java集合框架之List篇 ArrayList与LinkedList等的性能比较

    概要 我们在 Java Collections Framework - Java集合框架List,Map,Set等全面介绍之概要篇 一文中对Java集合框架(Java Collections Framework)做了一个比较全面的介绍. 该文粗略地介绍了List集合的概念定义等. List集合 List继承自Collection接口.List是一种有序集合,List中的元素可以根据索引(顺序号:元素在集合中处于的位置信息)进行取得/删除/插入操作. 跟Set集合不同的是,List允许有重复元素.

  • java 之 ArrayList 、LinkedList分析源码

    java 之 ArrayList .LinkedList分析源码 List接口 ArrayList add方法 1.先判断elementData 是否是一个空数组 2.如果是空数组再size + 1 和 默认大小中取最大的值 3.判断新的size是否大于elementData.length 4.如果新的size 大于 当前list的长度,那么进入grow方法,如果size小于当前list的长度旧不需要重新定义一个拷贝数组 5.定义一个新的长度,这个长度的值为oldCapacity + (oldC

  • java基础(九) ArrayList VS LinkedList

    再说具体的实现类之前,首先,说一下它们的共同的接口: List List接口扩展了Collection并声明存储一系列元素的类集的特性.使用一个基于零的下标,元素可以通过它们在列表中的位置被插入和访问.一个列表可以包含重复元素. 除了由Collection定义的方法之外,List还定义了一些它自己的方法.注意当类集不能被修改时,其中的几种方法引发UnsupportedOperation Exception异常.当一个对象与另一个不兼容,例如当企图将一个不兼容的对象加入一个类集中时,将产生Clas

  • ArrayList和LinkedList剖析

    简介 java集合中最顶层的接口为Connection接口,其中有两个接口实现了Connection接口,分别为Set接口和List接口.Set接口表现为无序,不能重复:List接口表现为有序,可重复.其中ArrayList和LinkedList是List接口的实现类中最常用的两个.下面针对ArrayList和LinkedList这两个实现类做一些说明: (1)ArrayList:ArrayList是一个泛型类,底层采用数组结构保存对象.数组结构的优点是便于对集合进行快速的随机访问,即如果需要经

  • jdk集合常用方法分析之ArrayList&amp;amp;LinkedList&amp;amp;以及两者的对比分析

    集合使用注意事项: 1.集合当中只能放置对象的引用,无法放置原生数据类型,我们需要使用原生数据类型的包装类才能加入到集合当中去(JDK5之后会进行自动的装箱和拆箱操作,表面上看集合中是可以直接放置原生数据类型进去,但实质上是进过自动装箱成对象操作的): 2.集合当中放置的都是Object类型,因此取出来的也是Object类型(可以放置任意类型的数据),那么必须要使用强制类型转换将其转换为真正的类型(放置进去的类型). ArrayList ArrayList常用方法: boolean add(E

  • ArrayList与linkedList的区别 重写hashCode()和equals()方法

    ArrayList底层使用数组实现的,而LinkedList底层使用链表实现的. 对ArrayList与linkedList而言,在末尾增加一个元素的效率是一样的, 对ArrayList而言,在其内部数组增加一个元素是比较麻烦的,偶尔会导致数组进行重新分配. 对于随机访问set和get,ArrayList优于LinkedList,因为LinkedList是指针移动. 对于删除与增加操作,LinkedList是比较占优势,效率高.因为ArrayList需要移动元素.而LinkedList 只需要指

  • ArrayList和LinkedList区别 java

    ArrayList与LinkedList 都是实现了List接口的集合类 1.数据结构:ArrayList 的底层实现是动态数组,而LinkedList的底层实现是一个双向链表. 2.随机访问:对于List接口的get set方法实现,ArrayList要优与LinkedList,因为ArrayList只根据下标取数据即可,而LinkedList要移动指针. 3.添加删除:对于List接口的add remove 方法实现,LinkedList 要优于ArrayList,因为ArrayList要移

Tags: