570950af9c46e1e4fceaf77a9a30cba9.png

容器:

1.Collection(interface)

a.Set((interface)):不允许重复

(1).HashSet:无序不重复

(2).TreeSet:有序不重复

b.List(interface):有序(元素存入顺序),可重复

(1).LinkedList:链表,线程不安全

(2).ArrayList:数组,线程不安全

(3).Vector:数组,线程安全

2.Map(interface)

a.HashMap

ArrayList:是通过维护数组来实现的

改、查操作使用ArrayList速度快捷

ArrayList实现了List接口,它是以数组的方式来实现的,数组的特性是可以使用索引的方式来快速定位对象的位置,因此对于快速的随机取得对象的需求,使用ArrayList实现执行效率上会比较好.

LinkedList:是用双向链表实现的

删、增速度较快。

两个都是类,要创建对象。用new创建。

LinkedList是采用链表的方式来实现List接口的,它本身有自己特定的方法,如: addFirst(),addLast(),getFirst(),removeFirst()等. 由于是采用链表实现的,因此在进行insert和remove动作时在效率上要比ArrayList要好得多!适合用来实现Stack(堆栈)与Queue(队列),前者先进后出,后者是先进先出.

在删除可插入对象的动作时,为什么ArrayList的效率会比较低呢?

解析: 因为ArrayList是使用数组实现的,若要从数组中删除或插入某一个对象,需要移动后段的数组元素,从而会重新调整索引顺序,调整索引顺序会消耗一定的时间,所以速度上就会比LinkedList要慢许多. 相反,LinkedList是使用链表实现的,若要从链表中删除或插入某一个对象,只需要改变前后对象的引用即可!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐