java——双列集合

java——双列集合

  1. 双列集合一次需要存一对数据,分别为键和值

  2. 键不能重复

  3. 键和值是一一对应的,每一个键只能找到自己对应的值

  4. 键+值这个整体我们称之为“键值对”或“键值对对象”Entry对象

方法名 说明
V put(k key,v value) 添加元素
V remove(Object key) 根据键删除键值对元素
void clear() 移除所有的键值对元素
boolean containskey(Object key) 判断集合是否包含指定的键
boolean containsValue(Object value) 判断集合是否包含指定的值
boolean isEmpty() 判断集合是否为空
int saze() 集合长度,也就是键值对个数

Map遍历

  1. HashMap底层是哈希表结构的

  2. 依赖hashCode方法和equals方法保证键的唯一

  3. 如果键储存的是自定义对象,需要重写hashCode和equals方法

  4. 如果值存储的时自定义对象,不需要重写hashCode和equals方法

LinkedHashMap

有键决定的:有序,不重复,无索引

这里的有序是指保证存储和取出的元素顺序一致

原理:底层数据结构依然是哈希表,只是每个键值对又额外的多了一个双链表的机制记录存储的顺序

TreeMap

TreeMap跟TreeSet底层原理一样,都是红黑树结构的

由键决定特性:不重复,无索引,可排序

可排序:对键进行排序

TreeMap默认按照间的从小到大进行排序,也可以自己规定的排序规则

代码书写两种排序规则
  1. 实现Comparable接口,指定比较原则

  2. 创建集合时传递Comparator比较器对象,指定比较规则

可变参数

  1. 可变参数本质就是一个数组

  2. 作用:在形参中接收多个数据

  3. 格式:数据类型 ....参数名称 例int.....a

  4. 注意:1.形参列表中可变参数只能有一个 2.可变参数必须放在形参列表的最后面

Collections

-java.util.Collections:是集合工具类

作用:Collections不是集合,而是集合工具类

方法 说明
public static< T >boolean addAll(Collection< T > c, T.....elements) 批量添加元素
public static voidshuffle(List< ? > list) 打乱LIst集合元素顺序
public static < T > void sort(List< T >list) 排序
public static < T > void sort(List, Comparator< T > c ) 根据指定的规则排序
public static < T > int binarySearch(List< T >,T key) 二分法查元素
public static < T > void copy(List< T >dest,LIst< T > src) 拷贝集合中的元素
public static < T > int fill(List< T >list,T obj) 使用指定的元素填充集合
public static < T > void max/min(Collection< T > coll) 根据自然排序获取最大/小值
public static < T > void swap(List< ? > list,int i,int j) 交换集合中指定位置元素

集合进阶

不可变集合:不可以被改变的集合

特点:定义后不可以修改或添加,删除

如何创建不可变集合

LIst Set和Map集合中,都存在of方法可以创建不可变集合

三种方式的细节
  • List:直接用

  • Set:元素不能重复

  • Map:元素不能重复,键值对数量最多是10个,超过10个用ofEntries方法

你可能感兴趣的:(JAVA,java,开发语言)