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

posted @ 2019-05-10 21:29  MrChengs  阅读(198)  评论(0编辑  收藏  举报