天天看点

Java集合

Java集合

什么是集合?

集合类是一个大小可变的容器。

集合类的特点:类型可以不确定,大小可以不确定

使用场景:存储的数据要经常发生改变

常用集合

Java集合

Collection:是单列集合的顶层父类,是一个独立元素的序列,这些个元素都服从一条或者多条规则。

List必须按照插入的顺序保存元素,而Set不能有重复的元素。即Collection分为List和Set两大分支。

【重点】

Collection:无序,可重复

List系列集合:有序,可重复,有索引。

-- ArrayList:添加的元素是有序,可重复,有索引

-- LinekdList:添加的元素是有序,可重复,有索引

Set系列集合:添加的元素是无序,不可重复,无索引

-- HashSet:添加的元素是无序,不可重复,无索引

-- LinkedHashSet:添加的元素是有序,不可重复,无索引

-- TreeSet:按照大小默认升降序,不可重复,无索引

Map:存储方式key:value键值对

Conllection集合

什么是Conllection集合?

Conllection集合常用方法

方法名

说明

public boolean add(E e)

在集合末尾新增一个元素

public void clear

清空集合中的所有元素

public boolean remove(E e)

删除指定的元素,返回是否删除成功

public boolean isEmpty()

判断当前集合是否为空

public boolean contains(Object obj)

判断当前集合中是否包含指定的对象

public Object[] toArray()

把集合中的元素,存储到数组中

返回集合中的元素个数

List集合

ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高。底层数据结构是数组,线程不安全。(它是我们用得非常非常多的一个集合)

public boolean add(int index, E element)

在指定位置添加元素

public boolean remove(Object o)

public E remove(int index)

删除指定索引处的元素,返回被删除的元素

public E set(int index,E element)

修改指定索引处的元素,返回被修改的元素

public E get(int index)

返回指定索引处的元素

public int size()

indexOf(Object o)

查询指定元素的位置 lastIndexOf也一样,只是从尾部开始遍历

Map集合

Java集合

Map集合是一种双列集合,每个元素包含两个值。

Map集合的每个元素的格式:key=value(键值对元素)。

1.Map集合都是由键决定的。

2.Map集合的键都是无序、不重复、无索引。

--Map集合后面重复的键对应的元素会覆盖前面的整个元素!

3.Map集合的值是无要求的。

4.Map集合的键值对都可以为null。

HashMap:元素按照键是无序、不重复、无索引,值不做要求。

LinkedHashMap:元素按照键是有序、不重复、无索引、值不做要求。

1.Map集合存储的信息更加具体丰富。

2.Map集合适合存储对象数据

public v put(K key, V value)

把指定的键与指定的值添加到Map集合中

public v remove(Object key)

删除指定的值所对应的元素

判断集合是否为空

abstract int size()

获取集合大小

public v get(Object key)

根据键获取指定元素

public set keySet()

获取Map集合中所有的键,存储到Set集合中

获取Map集合中所有的值,存储到Conllection集合中

public set<Map.Entry<K,V>> entrySet()

获取到Map集合中所有的键值对对象的集合(Set集合)

public boolean containKey(Object key)

判断该集合中是否包含某个键

public boolean containValue(Object value)

判断该集合中是否包含某个值

map集合3中遍历方式:

1.“键找值”的方式遍历:先获取Map集合全部的键,再根据遍历键找值。

2.“键值对”的遍历方式:难度较大。

3.Lambda表达式遍历

Collections工具类

java.utils.Collections:是集合工具类

Collections并不属于集合,是用来操作集合的工具类

public static boolean addAll(Conlection<? super T> c,T... emlements)

给集合对象批量添加元素

public static void shuffle(List<?> list)

打乱集合顺序

public static void sort(List list)

将集合中元素按照默认规则排序

public static void sort(List list,Comparator<? super T>)

将集合中的元素按照指