JAVA里几种数据结构的优点和缺点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA里几种数据结构的优点和缺点相关的知识,希望对你有一定的参考价值。
一般大家都知道ArrayList和LinkedList的大致区别:
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
这一点要看实际情况的。若只对单条数据插入或删除,ArrayList的速度反而优于LinkedList。但若是批量随机的插入删除数据,LinkedList的速度大大优于ArrayList. 因为ArrayList每插入一条数据,要移动插入点及之后的所有数据。
4.查找操作indexOf,lastIndexOf,contains等,两者差不多。
5.随机查找指定节点的操作get,ArrayList速度要快于LinkedList.
Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。 Set接口主要实现了两个实现类:
- HashSet: HashSet类按照哈希算法来存取集合中的对象,存取速度比较快
- TreeSet :TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。
Set 的用法:存放的是对象的引用,没有重复对象
List的特征是其元素以线性方式存储,集合中可以存放重复对象。
List接口主要实现类包括:
- ArrayList() : 代表长度可以改变得数组。可以对元素进行随机的访问,向ArrayList()中插入与删除元素的速度慢。
- LinkedList(): 在实现中采用链表数据结构。插入和删除速度快,访问速度慢。
以上是关于JAVA里几种数据结构的优点和缺点的主要内容,如果未能解决你的问题,请参考以下文章