javalinkedlist和arraylist的使用及性能分析

javalinkedlist和arraylist的使用及性能分析

ID:30768799

大小:196.00 KB

页数:12页

时间:2019-01-03

javalinkedlist和arraylist的使用及性能分析_第1页
javalinkedlist和arraylist的使用及性能分析_第2页
javalinkedlist和arraylist的使用及性能分析_第3页
javalinkedlist和arraylist的使用及性能分析_第4页
javalinkedlist和arraylist的使用及性能分析_第5页
资源描述:

《javalinkedlist和arraylist的使用及性能分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JAVALinkedList和ArrayList的使用及性能分析JAVALinkedList和ArrayList的使用及性能分析,这篇文章也是以JAVAList的总结。第1部分List概括List的框架图List是一个接口,它继承于Collection的接口。它代表着有序的队列。AbstractList是一个抽象类,它继承于AbstractcollectionoAbstractList实现List接口中除size()>get(intlocation)之外的函数。AbstractSequentialList

2、是一个抽象类,它继承于AbstractList0AbstractSequentialList实现了“链表中,根据index索引值操作链表的全部函数”。ArrayList,LinkedList,Vector,Stack是List的4个实现类。ArrayList是一个数组队列,相当于动态数组。它由数组实现,随机访问效率高,随机插入、随机删除效率低。LinkedList是一个双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList随机访问效率低,但随机插入、随机删除效率低。Vector是矢量队

3、列,和ArrayList一样,它也是一个动态数组,由数组实现。但是ArrayList是非线程安全的,而Vector是线程安全的。Stack是栈,它继承于Vectoro它的特性是:先进后出(FILO,FirstInLastOut)o第2部分List使用场景学东西的最终目的是为了能够理解、使用它。下面先概扌舌的说明一下各个List的使用场景,后面再分析原因。如果涉及到“栈”、“队列”、“链表”等操作,应该考虑用List,具体的选择哪个List,根据下面的标准来取舍。(01)对于需要快速插入,删除元素,应该使用

4、LinkedListo(02)对于需要快速随机访问元素,应该使用ArrayListo(03)对于“单线程环境”或者“多线程环境,但List仅仅只会被单个线程操作”,此吋应该使用非同步的类(如ArrayList)o对于“多线程环境,且List可能同吋被多个线程操作”,此吋,应该使用同步的类(如Vector)。通过下面的测试程序,我们来验证上面的(01)和(02)结论。参考代码如下:复制代码代码如下:importjava.util.*;importjava」ang.Class;/**@desc对比ArrayL

5、ist和LinkedList的插入、随机读取效率、删除的效率**@authorskywang*/publicclassUstCompareTest{privatestaticfinalintCOUNT=100000;privatestaticLinkedListlinkedList=newLinkedList();privatestaticArrayListarrayList=newArrayList();privatestaticVectorvector=newVector));privatestati

6、cStackstack=newStack();publicstaticvoidmain(String[]args){//换行符System.out.println();//插入insertByPosition(stack);insertByPosition(vector);insertByPosition(linkedList);insertByPosition(arrayList);//换行符System.out.println();//随机读取readByPosition(stack);readByP

7、osition(vector);readByPosition(linkedList);readByPosition(arrayList);//换行符System.out.println();//删除deleteByPosition(stack);deleteByPosition(vector);deleteByPosition(linkedUst);deleteByPosition(arrayUst);}//获取list的名称privatestaticStringgetListName(Listlist)

8、{if(listinstanceofLinkedList){return"LinkedList";}elseif(listinstanceofArrayList){return"ArrayList";}elseif(listinstanceofStack){return"Stack";}elseif(listinstanceofVector){return"Vector";}else{return"List";}}//向lis

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。