List接口下的子类

List接口下的子类

List接口下的子类

接口

方法 描述
boolean add(Object obj) 添加一个对象数据
boolean addAll(Collection c) 将一个集合中的所有对象添加到此集合中
void clear() 清空此集合中的所有对象
boolean contains(Object o) 检查此集合中是否包含o对象
boolean equals(Object o) 比较此集合是否与指定对象相等
boolean isEmpty() 判断此集合是否为空
boolean remove(Object o) 在此集合中移除o对象
int size() 返回此集合中的元素个数
Object[] toArray() 将此集合转换成数组
List接口:有序,可重复(且存在索引标记)

List下有:ArratList Vector LinkedList 3个子类

List常用的一些排列算法

List常用算法
–void sort(List) 对List容器内的元素排序
void reverse(List) 对List容器内的对象进行逆序排列
void dill(List,object) 用一个特定的对象重写整个容器
void copy(List dest,List src) 将src容器内容复制到des容器
int binarySearch(List,object) 对于顺序的List容器,采用折半查找法查找特定对象

Set接口:无序,不可重复

Set接口没有提供额外的方法
Set容器实现类有HashSet、TreeSet

ArrayList和Vector的区别,主要包括两个方面

同步性:

Vector是线程安全的,也就是说它的方法直线是线程同步的,而ArrayList是线程不安全的,它的方法之间是线程不同步的

如果只有一个线程去访问集合那么使用ArrayList,他不考虑线程安全的问题,所以效率会高一些

如果是多个线程去访问集合,那么使用Vector

数据增长性:

ArrayList和Vector集合都有一个初始容量的大小,当元素的个数超过存储容量是,就需要增加ArrayList和Vector的存储空间,每次增加不是

增加一个而是增加多个,Vector是增加原来的两倍,ArrayList没有明文规定,但是从源码中可以看出增长原来的1.5倍

ArrayList和Vector可以设置初始的存储空间的大小,Vector还以设置增长空间大小,而ArrayList不可以。

Java LinkedList(链表) 类似于 ArrayList,是一种常用的数据容器。

与 ArrayList 相比,LinkedList 的增加和删除对操作效率更高,而查找和修改的操作效率较低。

以下情况使用 ArrayList :

  • 频繁访问列表中的某一个元素。
  • 只需要在列表末尾进行添加和删除元素操作。

以下情况使用 LinkedList :

  • 你需要通过循环迭代来访问列表中的某些元素。
  • 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。