前言
📋前言📋
💝博客:【无聊大侠hello word】💝
✍有一点思考,有一点想法,有一点理性!✍
✍本文由在下【无聊大侠hello word】原创,首发于CSDN✍
ArrayList和LinkedList性能对比
package cmo.basis.Demo;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/**
* 描述:ArrayList和LinkedList性能对比
*
* 总结:
* (1)ArrayList实现了List接口:
* 1.继承AbstractList类,实现了数组大小可变性
* 2.允许有null元素
* 3.ArrayList随机访问和遍历整个集合时性能较好
* 4.但是在List的指定位置插入和移除元素时性能较差
*
* (2)LinkedList实现了List接口
* 1.使用了链表结构进行存储
* 2.允许有null元素
* 3.在List的中间插入和移除元素时性能较好
* 4.但是随机访问和查询集合中的元素是性能较差
*/
public class ArrayListAndLinkedList
{
private static final int N = 10000;
private static long countTime(List list)
{
long start = System.currentTimeMillis();
Object o = new Object();
for (int i = 0; i < N; i++)
{
list.add(i, o);
}
return System.currentTimeMillis() - start;
}
private static long readList(List list)
{
long start = System.currentTimeMillis();
for (int i = 0; i < list.size(); i++)
{
list.get(i);
}
return System.currentTimeMillis() - start;
}
private static List addToList(List list)
{
Object o = new Object();
for (int i = 0; i < N; i++)
{
list.add(i, o);
}
return list;
}
public static void main(String[] args)
{
System.out.println("ArrayList添加"+ N +"条费时:"+ countTime(new ArrayList()));
System.out.println("LinkedList添加"+ N +"条费时:"+ countTime(new LinkedList()));
List listA = addToList(new ArrayList());
List listB = addToList(new LinkedList());
System.out.println("ArrayLis查找"+ N +"条费时:"+ readList(listA));
System.out.println("LinkedList查找"+ N +"条费时:"+ readList(listB));
}
}
先赞后看,养成习惯!!!^ _ ^ ❤️ ❤️ ❤️
码字不易,大家的支持就是我的坚持下去的动力。点赞后不要忘了关注我哦!