6、集合--List接口
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对象容量为列表当前大小,程序可以使用这个操作减少对象的存储空间