一,关于Collection的框架的学习理解
Collection是Java的集合框架,存储的是一维数据,他继承了Iterable<T>接口。
其中有 List 和 Set还有Queue 继承了 Collection的接口, 实现List接口的集合,加入数据的时候是按照顺序加入数据的,而Set加入的时候内部有进行排序,并且不能重复。Queue是队列,满足先进先出。LinkedList实现了Queue的接口。
在Java中实现List的接口有:ArrayList LinkedList 以及 Vector 他们都实现了List
不同的是 ArrayList的内部是通过数组实现的,也就是存储的物理地址是相邻的,遍历和查找很快,但是插入和删除效率较低,还有当容量不够的时候,整个数组的元素要复制到一个新产生的大的数组中,话费的代价是较大的。
Vector内部也是通过数组实现的,它和ArrayList不同的是,它是线程安全的,当容量不够的时候它默认增长是一倍,而ArrayList是1.5倍,在不考虑多线程的情况下是不考虑它的,应为要保证线程安全也是要话费代价的,效率比ArrayList慢
LinkList内部是采用链表的形式组织的,所以插入和删除容易,但是查找遍历较慢
实现Set的接口有 Hashset(无序不重复接口) HashMapSet (有序不重复接口) Treeset(有序不重复接口) 等等
所以使用这些集合类的时候,要注意区分它们