List 集合继承了 Collection 接口已定义一个允许重复的有序集合
该接口不但能够对列表的一部分进行处理
还添加了位置的操作
源码地址: https://www.cnblogs.com/Mrchengs/p/10842091.html
相关的方法均在源码中已有说明!!!
AbstractList 和 AbstractSequentialList 抽象类
两个抽线类的源码地址:
- https://www.cnblogs.com/Mrchengs/p/10844184.html
- https://www.cnblogs.com/Mrchengs/p/10845263.html
在 java 程序中有两个抽象的 List 实现类, 分别时以上的两种
像 AbstractSet 类一样, 他们覆盖了 equals() 方法和 hashCode() 方法以确保两个相等的集合返回相同的哈希码
如果两个列表大小相等且包含顺序相同的元素
则这两个列表相等, 这里的 hashCode() 方法在 List 接口中指定, 在这里实现
除了 equsls() 方法和 hasnCode() 方法之外
还实现了其余 List 方法的一部分
因为数据的随机访问和顺序读取是分别实现的
是得具体表现更为容易
LinkedList 和 ArrayList 实现类
在集合框架中有两个常规的 List 实现
LinkedList 和 ArrayList
如果支持随机访问, 不惜在除尾部的任何位置插入或除去元素 ----ArrayList
如果频繁的从列表中添加和删除元素, 只要顺序的访问列表 ---LinkedList
实现地址: https://www.cnblogs.com/Mrchengs/p/10845263.html
两个实现类都实现类 Cloneable 接口
提供了两个构造函数一个无参一个接收一个 Collection
LinkedList: 添加了一些处理列表两端的方法
1,void addFirst(Object o): 将对象 o 添加到列表的开头
2,void addLast(Object o): 将对象 o 添加大列表的结尾
3,Object getFirst(): 返回列表开头的元素
4,Object getLast(): 返回列表结尾的元素
5,Object removeFirst(): 删除并且返回列表开头的元素
6,Object removeLast(): 删除并且返回列表结尾的元素
7,LinkedList(): 构建一个空的链表
8,LinkedList(Collection c): 构建一个链接列表并且添加集合 c
ArrayList 类:
ArrayList 类封装类一个动态在分配的 Object [] 数组
每个 ArrayList 对像有一个 Capacity
这个 Capacity 表示存储列表中元素的数组的容量
当元素添加到 ArrayList 时, 他会自动在常量的时间内增加
1,void ensureCapacity(int minCapacity): 将 ArrayList 对像容量增加 minCapacity
2,void trimToSize(); 整理 ArrayList 对象容量为列表当前大小, 程序可以使用这个操作减少对象的存储空间
来源: http://www.bubuko.com/infodetail-3054112.html