Collection

2.Set

Set表示数学上集合的概念。其最主要的特点是集合中的元素不能重复,因此存入Set的每一个元素都必须定义equals方法来确保对象的唯一性。该接口有三个实现类:
HashSet、TreeSet和LinkedHashSet。
其中HashSet是无序的;TreeSet实现了SortedSet接口,因此是有序的;LinkedHashSet继承自HashSet,是按照插入顺序存放的。

3.list

List又称为有序的Collection。它按照对象进入的顺序保存对象。同时,它可以保存重复对象。

ArrayList和Vector

都是基于存储元素的Object[] array来实现的,他们会在内存开辟一块连续的存储空间,由于内存是连续的,因此他们支持用序号(下标)来访问元素,同时索引数据的速度比较快。但是在插入元素时需要移动容器中的元素,所以对数据的插入操作比较慢。他们都有一个初始化的容器的大小,当存储元素超过这个大小时,就要动态的扩充他们的存储空间。        
Vector类的所有方法都是同步的。可以由两个线程安全地访问一个Vector对象、但是一个线程访问Vector的话代码要 在同步操作上耗费大量的时间。 
Arraylist不是同步的,所以在不需要保证线程安全时时建议使用Arraylist。

LinkedList

采用双向链表来实现,对数据的索引需要从头开始遍历,因此随机访问效率低,但是因为插入时不需要移动数据,因此插入效率高。
同时LinkedList是非线程安全的。
posted @ 2020-02-07 10:54  程序员自习室  阅读(158)  评论(0)    收藏  举报