List
List集合存储元素的特点:
- 1.有序
list集合存储有下标:存储进去和取出出来是一个顺序。 - 2.元素可重复
元素可以重复插入。
List容量问题
ArrayList底层是数组,数组有下标。
ArrayList集合底层默认初始化容量是10,扩大以后的容量是原来的1.5倍。(关注一下源码)
Vector集合底层默认初始化容量是10,扩大以后的容量是原来的2倍。
如何去优化ArrayList, vector?
尽量减少扩容操作,因为**数组扩容(Array.copyOf)**需要对数组进行拷贝。
数组拷贝很消耗内存。
一般推荐创建集合的时候指定初始化容量。
预估一下容量,进行容量参数配置。
vector的线程安全一般情况下不会使用集合自带的安全机制。Vector效率不高,所以现在较少使用。
小知识点:
(1)二进制计算速度比较快,效率高。
(2)凡是乘除都可以使用位运算。比如扩大2倍,可以左移1位;缩小2倍,可以右移1位(<< 左移,>>右移)
ArrayList、 LinkedList 、Vector
LinkedList没有数据容量的说法,底层实现与ArrayList不同,其它的方法都一样。
ArrayList与Vector,Vector安全性低,也不会采用它的安全机制。
List遍历
目的:输出list中的元素。
for(Iterator iterator1 = collection.iterator();iterator1.hasNext();){
System.out.println(ite