java中ArrayList和LinkedList的区别

原创 2013年12月05日 17:17:23
  • ArrayList是List的数组实现;
  • LinkedList是List的链表实现;
  • 优缺点:ArrayList和LindedList的区别,主要也在于数组和链表的区别。链表中的数据都有一个单独的空间来保存,查找数据时,需要移动指针。而数组则不同,只需要知道数组下标就可以获取数据。所以,在获取查找时,数组的效率要高一些(直接通过下标获取值);但是在移除数据时,数组需要在删除数据后,再重新移动数组下标,而链表不需要,所以,在移除数据时,链表的效率高于数组。[数组在移除最后一个数据时,无需移动下标,比链表快一点]。
  • 下面是我做的代码测试:
    static final int N = 50000;
    	
    	public static void main(String[] args) {
    		List<String> array = new ArrayList<String>();
    		List<String> link = new LinkedList<String>();
    		for(int i = 0; i < N; i++){
    			array.add(i + "a");
    			link.add(i + "b");
    		}
    		get(array);
    		get(link);
    		remove(array);
    		remove(link);
    	}
    	//查找数据
    	public static void get(List <String>list){
    		long start = System.currentTimeMillis();
    		for(int i = 0; i < N; i++){
    			String str = list.get(i);
    		}
    		System.out.println(list.getClass().getName()+"查找耗时:" 
    				+ (System.currentTimeMillis()-start));
    	}
    	//移除数据
    	public static void remove(List <String> list){
    		long start = System.currentTimeMillis();
    		int flag = 50000;
    		for(int i = 0; i < flag;){
    			list.remove(i);
    			flag --;
    		}
    		System.out.println(list.getClass().getName()+"移除耗时:"
    				+ (System.currentTimeMillis()-start));
    	}

    打印结果为:
        java.util.ArrayList查找耗时:3
        java.util.LinkedList查找耗时:7570
        java.util.ArrayList移除耗时:1269
        java.util.LinkedList移除耗时:6

【Java】 ArrayList与LinkedList的区别

LinkedList与ArrayList的区别
  • yingpaixiaochuan
  • yingpaixiaochuan
  • 2015年10月08日 18:07
  • 936

Java 中Vector、ArrayList和LinkedList 的区别

Java 中Vector、ArrayList和LinkedList 的区别Java 中Vector、ArrayList和LinkedList 的区别 SDK提供了有序集合接口java.util.Lis...
  • daryl715
  • daryl715
  • 2007年02月25日 09:49
  • 3708

java集合框架05——ArrayList和LinkedList的区别

前面已经学习完了List部分的源码,主要是ArrayList和LinkedList两部分内容,这一节主要总结下List部分的内容。 List概括 先来回顾一下List在Collection中的的框架图...
  • eson_15
  • eson_15
  • 2016年04月13日 20:39
  • 10361

java源码分析之集合框架 ArrayList和LinkedList的区别05

List概括 先来回顾一下List在Collection中的的框架图: 从图中我们可以看出: 1. List是一个接口,它继承与Collection接口,代表有序...
  • wangnanwlw
  • wangnanwlw
  • 2016年08月17日 13:35
  • 600

java中arrayList与linkedList区别

这个问题其实好早就想做笔记了,一次面试问到了, ArrayList与linkedList在性能上各有优缺点,都有各自的地方, 1.对ArrayList和LinkedList而言,在列表中末尾添加一...
  • u014209975
  • u014209975
  • 2016年09月02日 16:09
  • 1387

Java中arraylist和linkedlist源码分析与性能比较

Java中arraylist和linkedlist源码分析与性能比较 1,简介 在java开发中比较常用的数据结构是arraylist和linkedlist,本文主要从源码角度分析arraylis...
  • weibin_6388
  • weibin_6388
  • 2016年04月05日 14:17
  • 607

小谈面试时面试官为什么问ArrayList,LinkedList与List的不同

当你做为一个技术面试官面试应聘者时,你总是想尝试能全面了解这个面试者的方方面面。技术,背景,性格都是被重点关注的。面试官想在短暂的面试过程中多了解应聘者,那就要有明确的目的性。但是一般面试官不会只是简...
  • yuyanjun123
  • yuyanjun123
  • 2016年06月22日 16:29
  • 434

比较ArrayList、LinkedList、Vector

LinkedList的add和remove性能比ArrayList高,你确定?
  • renfufei
  • renfufei
  • 2013年12月02日 18:11
  • 42062

Java基础之ArrayList与LinkedList、Vector,以及HashMap与HashTable的区别

ArrayList是一个动态数组,有下标 LinkedList是一个双向链表,一个指针指向下一个 相同点:都继承自Collections类,放动态数据。 不同点: 后者有指针,...
  • itchenlin
  • itchenlin
  • 2015年05月20日 17:02
  • 770

ArrayList,LinkedList,Vector,Stack之间的区别

从多个方面讨论它们之间的区别: 1,线程安全性 2,实现方式 3,容量扩展方面 4,效率方面...
  • a19881029
  • a19881029
  • 2015年05月06日 17:47
  • 5781
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java中ArrayList和LinkedList的区别
举报原因:
原因补充:

(最多只允许输入30个字)