`

以添加来比较arrylist与linkedlist的速度

 
阅读更多
package cn.ehoo.test;

import java.util.*;

public class ListDemo {
	static final int N = 50000;

	static long timeList(List<Object> list) { 
		long start = System.currentTimeMillis();
		Object o = new Object();
		for (int i = 0; i < N; i++)
			list.add(0, o);
		return System.currentTimeMillis() - start;
	}

	public static void main(String[] args) {
		System.out.println("ArrayList耗时:" + timeList(new ArrayList()));
		System.out.println("LinkedList耗时:" + timeList(new LinkedList()));
	}
}




输出的结果为:
ArrayList耗时:953
LinkedList耗时:0


在上面的程序中list.add时如果不要前面的0,而是直接用list.add(o);那么得到的值就会不一样的。测试来说linkedlist要比Arraylist用的时间多点。但差不了多少。



在list中用list.add(0,"whp");这样的方式向list中加入值时,list会把索引一直向上推也就是list.add(0,"whp");list.add(0,"whp1");list.add(0,"whp2");这样的代码执行完后,
list.get(0)得到的值是whp2。
list.get(1)得到的值是whp1。
list.get(2)得到的值是whp。

如果直接是list.add("whp");list.add("whp1");list.add("whp2");那么
list.get(0)得到的值是whp。
list.get(1)得到的值是whp1。
list.get(2)得到的值是whp2。是安顺序存放的



分享到:
评论

相关推荐

    任务九:使用集合ArryList集合对类对象Member和Goods类的形势完成淘宝shopping”购物管理系统购物结算模块和客户管理模块

    任务九:使用集合的方法(ArryList集合对类对象Member和Goods类) 完成淘宝shopping”购物管理系统购物结算模块和客户管理模块 1.需要完成的任务 开发“淘宝Shopping购物管理系统”: (1)实现系统数据传递 (2)...

    浅析ArrayList内部实现

    然后,我们将指定位置后的对象整体往后移一位,最后将要添加的对象添加到指定的索引位置。 ArrayList的内部实现机理是基于数组的,但是通过扩容机理和索引机理,可以实现自由扩展和指定索引位置添加数据的功能。

    arrayList源代码

    默认构造方法初始化容量为10,而带有初始容量的构造方法可以根据传入的参数来确定初始容量大小。如果传入的容量小于等于0,则会抛出`IllegalArgumentException`异常。 #### 成员变量 ```java transient Object[] ...

    Java项目新手java开发的一些小例子,可以提供思考,创新

    集合\bin\cn\jbit\arrylist\QQ.class (1732, 2018-05-18) 集合\bin\cn\jbit\arrylist\TestList.class (514, 2018-05-18) 集合\src\cn\jbit\arrylist\TestList.java (4480, 2018-05-18) 集合\bin\cn\jbit\arrylist (0...

    ArrayList深度剖析与简单实用

    7. **与其他数据结构比较** ArrayList与数组相比,提供了更灵活的大小调整,但遍历速度较慢,因为需要通过索引访问。相比于LinkedList,ArrayList在插入和删除元素时效率较低,尤其是当元素位于列表中间时,因为...

    ArrayList源码.zip

    ArrayList的核心实现是通过一个Object类型的数组来存储元素。当添加元素时,如果当前容量不足,ArrayList会自动扩容,通常扩容为原来的1.5倍。这种设计使得ArrayList在插入元素时有较好的性能表现,但删除元素特别是...

    JS ArrayList

    JS模拟ArrayList JS容器类

    手写精简版List和ArrayList,适合新手入门学习jdk源码demo

    `List`接口定义了一系列操作方法,如添加元素、删除元素、查找元素等。常见的`List`实现类有`ArrayList`、`LinkedList`等。 接着,我们来看看`ArrayList`。`ArrayList`是`List`接口的一个具体实现,它底层基于动态...

    JAVA实现超级玛丽

    /* * AnimFrame 是一个记录游戏进程,以及当前所处的像素段的类。... //---总时间 ,记录ArryList中时间的和--,实际是为增加一个新的AniFrame服务的,因为每一个新的服务都会由图片和结束时间来定义。

    Java中ArrayList去除重复元素(包括字符串和自定义对象)

    在Java中,我们可以使用Iterator迭代器来遍历ArrayList,并使用contains方法来判断元素是否已经在新集合中存在。如果不存在,则将其添加到新集合中。下面是一个示例代码: ```java public static ArrayList ...

    2013java面试题搜集

    32、 谈谈你来我们公司应聘工程师,你的优势是什么?? 33、 List list = new arryList( );必须这么写吗? 34、写了一个方法,参数是接口,调用方法时用接口的实现类是否可以?...................还有很多我在这...

    js链表操作(实例讲解)

    在JavaScript中,可以通过定义一个构造函数来实现链表的初始化,如示例代码中的ArrayList类。 ```javascript function ArrayList(){ this.head = new Node(null); this.tail = this.head; } ``` ### 知识点三:...

    把无限级分类生成数组

    把无限级分类循环出来确实是一件头疼的事情。 比如,我们要循环出一个SELECT,或一个TABLE,要写一大堆判断。 有没好点的办法呢? 我的做法是生成数组,可以重复调用,...list=aa.arrylist() 代码如下:&lt;&#37; cla

    KDropDownMultipleSelection:下拉列表中的一个或多个选择

    使用:[self showPopUpWithTitle:@“ Select Country” withOption:arryList xy:CGPointMake(16,150)size:CGSizeMake(287,280)isMultiple:NO]; isMultiple =是表示多项选择isMultiple =否表示单一选择 ...

    ios多选项下拉列表(Table)

    Use: [self showPopUpWithTitle:@"Select Country" withOption:arryList xy:CGPointMake(16, 150) size:CGSizeMake(287, 280) isMultiple:NO]; isMultiple =yes means Multiple Selection isMultiple =No Means ...

Global site tag (gtag.js) - Google Analytics