集合---List (2)
来源:互联网 发布:淘宝卖家如何装修店铺 编辑:程序博客网 时间:2024/05/17 05:15
List可以分为ArrayList,LinkedList,Vector等分支。List的特性是可重复数据,有序。
ArrayList的底层实现是数组,默认容量为10,当需要扩容时,会变为原来容量的1.5倍。因为是数组实现,ArrayList适合查找数据。
/** * Default initial capacity. 默认容量为10 */ private static final int DEFAULT_CAPACITY = 10;
public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e; return true; }private void ensureCapacityInternal(int minCapacity) { if (elementData == DEFAULTCAPACITY_EMPTY_ELEMENTDATA) { minCapacity = Math.max(DEFAULT_CAPACITY, minCapacity); } ensureExplicitCapacity(minCapacity); } private void ensureExplicitCapacity(int minCapacity) { modCount++; // overflow-conscious code if (minCapacity - elementData.length > 0) grow(minCapacity); } private void grow(int minCapacity) { // overflow-conscious code int oldCapacity = elementData.length; int newCapacity = oldCapacity + (oldCapacity >> 1); //原本容量右移一位,缩小为原来的一半,加上原 容量本身,即变为1.5倍容量 if (newCapacity - minCapacity < 0) newCapacity = minCapacity; if (newCapacity - MAX_ARRAY_SIZE > 0) newCapacity = hugeCapacity(minCapacity); // minCapacity is usually close to size, so this is a win: elementData = Arrays.copyOf(elementData, newCapacity); }
LinkedList靠链表实现,默认容量是0,其中有addFirst()和addLast(),add()默认使用addLast()。
transient int size = 0; //默认容量public boolean add(E e) { //默认add方法添加到链表尾部 linkLast(e); return true; }
Vector也是通过数组实现的,相比较于ArrayList,这种集合线程安全,但速度较慢。默认容量也为10,但扩容时会变为原来的2倍。
阅读全文
0 0
- 集合---List (2)
- 集合之List(2)
- 集合框架-List集合-2
- API-集合框架(2)-List
- 集合(2)list 关羽
- java集合2--List
- 四、集合(List)
- 集合框架(List)
- 集合(List)
- 集合(二)List
- Java集合概述(二):List集合
- Java集合(二)List集合
- Java集合(list,Set,Map)集合
- FreeMarker集合(List、Map)
- 集合框架(List 、Set)
- FreeMarker集合(List、Map)
- 黑马程序员-集合(List)
- 集合(List、Set、Map)
- PG的两种集群技术:Pgpool-II与Postgres-XL
- Android进阶之路
- 关于有关const的用法总结
- 用localhost可以访问falsh插件,用ip无法访问 chrom设置
- 算法只是技术的一部分
- 集合---List (2)
- 优雅的使用ActivityLifecycleCallbacks管理Activity和区分App前后台
- tcp拥塞控制算法
- python获取通道状态
- android解决65536问题
- Java 方法的内部类访问 方法的局部变量
- linux互斥锁和PV原语
- 设计模式(Design Pattern)
- SQL SERVE的聚集索引与非聚集索引