Conllection中常用的List

it2023-07-29  71

黄色的代表是接口,蓝色代表是实现类


一、Collection

1、添加元素

(1)add(E obj):添加元素对象到当前集合中

(2)addAll(Collection<? extends E> other):添加other集合中的所有元素对象到当前集合中,即this = this ∪ other

2、删除元素

(1) boolean remove(Object obj) :从当前集合中删除第一个找到的与obj对象equals返回true的元素。

(2)boolean removeAll(Collection<?> coll):从当前集合中删除所有与coll集合中相同的元素。即this = this - this ∩ coll

3、判断

(1)boolean isEmpty():判断当前集合是否为空集合。

(2)boolean contains(Object obj):判断当前集合中是否存在一个与obj对象equals返回true的元素。

(3)boolean containsAll(Collection<?> c):判断c集合中的元素是否在当前集合中都存在。即c集合是否是当前集合的“子集”。

4、获取元素个数

(1)int size():获取当前集合中实际存储的元素个数

5、交集

(1)boolean retainAll(Collection<?> coll):当前集合仅保留与c集合中的元素相同的元素,即当前集合中仅保留两个集合的交集,即this = this ∩ coll;

6、转为数组

(1)Object[] toArray():返回包含当前集合中所有元素的数组


二、ArrayList

//ArrayList底层使用的可以变长度的数组实现 //当ArrayList对象创建时底层数组初始化,但是没有长度,不能存储数据 //当ArrayList第一次添加元素时,初始化一个长度为10的数组保存元素。 //ArrayList的底层数组在元素数超过当前数组长度时扩容,按照原数组长度的1.5倍扩容。
### List接口中常用方法

List作为Collection集合的子接口,不但继承了Collection接口中的全部方法,而且还增加了一些根据元素索引来操作集合的特有方法,如下:

List除了从Collection集合继承的方法外,List 集合里添加了一些根据索引来操作集合元素的方法。

1、添加元素

void add(int index, E ele)boolean addAll(int index, Collection<? extends E> eles)

2、获取元素

E get(int index)List subList(int fromIndex, int toIndex)

3、获取元素索引

int indexOf(Object obj)int lastIndexOf(Object obj)

4、删除和替换元素

E remove(int index)E set(int index, E ele)

三、LinkedList

注意 LinkedList是双链表结构,适合增删改,ArrayList是底层是数组适合查询 大概就是这个样子,在每个元素在堆空间位置随机的 ArrayList就是一块连续的内存空间(在堆空间)

四、Vector

基本不怎么使用,方法和ArrayList一样,但是vector的方法都加了锁的,就是,线程安全但是效率不高

Collections工具类

参考操作数组的工具类:Arrays。

Collections 是一个操作 Set、List 和 Map 等集合的工具类。Collections 中提供了一系列静态的方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变、对集合对象实现同步控制等方法:

public static boolean addAll(Collection<? super T> c,T… elements)将所有指定元素添加到指定 collection 中。public static int binarySearch(List<? extends Comparable<? super T>> list,T key)在List集合中查找某个元素的下标,但是List的元素必须是T或T的子类对象,而且必须是可比较大小的,即支持自然排序的。而且集合也事先必须是有序的,否则结果不确定。public static int binarySearch(List<? extends T> list,T key,Comparator<? super T> c)在List集合中查找某个元素的下标,但是List的元素必须是T或T的子类对象,而且集合也事先必须是按照c比较器规则进行排序过的,否则结果不确定。public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll)在coll集合中找出最大的元素,集合中的对象必须是T或T的子类对象,而且支持自然排序public static T max(Collection<? extends T> coll,Comparator<? super T> comp)在coll集合中找出最大的元素,集合中的对象必须是T或T的子类对象,按照比较器comp找出最大者public static void reverse(List<?> list)反转指定列表List中元素的顺序。public static void shuffle(List<?> list) List 集合元素进行随机排序,类似洗牌public static <T extends Comparable<? super T>> void sort(List list)根据元素的自然顺序对指定 List 集合元素按升序排序public static void sort(List list,Comparator<? super T> c)根据指定的 Comparator 产生的顺序对 List 集合元素进行排序public static void swap(List<?> list,int i,int j)将指定 list 集合中的 i 处元素和 j 处元素进行交换public static int frequency(Collection<?> c,Object o)返回指定集合中指定元素的出现次数public static void copy(List<? super T> dest,List<? extends T> src)将src中的内容复制到dest中public static boolean replaceAll(List list,T oldVal,T newVal):使用新值替换 List 对象的所有旧值Collections 类中提供了多个 synchronizedXxx() 方法,该方法可使将指定集合包装成线程同步的集合,从而可以解决多线程并发访问集合时的线程安全问题Collections类中提供了多个unmodifiableXxx()方法,该方法返回指定 Xxx的不可修改的视图。

Set

最新回复(0)