Java双列集合如何为?
摘要:java——双列集合 双列集合一次需要存一对数据,分别为键和值 键不能重复 键和值是一一对应的,每一个键只能找到自己对应的值 键+值这个整体我们称之为“键值对”或“键值对对象”Entry对象 方法名说明 V put(k k
java——双列集合
双列集合一次需要存一对数据,分别为键和值
键不能重复
键和值是一一对应的,每一个键只能找到自己对应的值
键+值这个整体我们称之为“键值对”或“键值对对象”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遍历
HashMap底层是哈希表结构的
依赖hashCode方法和equals方法保证键的唯一
如果键储存的是自定义对象,需要重写hashCode和equals方法
如果值存储的时自定义对象,不需要重写hashCode和equals方法
LinkedHashMap
有键决定的:有序,不重复,无索引
这里的有序是指保证存储和取出的元素顺序一致
原理:底层数据结构依然是哈希表,只是每个键值对又额外的多了一个双链表的机制记录存储的顺序
TreeMap
TreeMap跟TreeSet底层原理一样,都是红黑树结构的
由键决定特性:不重复,无索引,可排序
可排序:对键进行排序
TreeMap默认按照间的从小到大进行排序,也可以自己规定的排序规则
代码书写两种排序规则
实现Comparable接口,指定比较原则
创建集合时传递Comparator比较器对象,指定比较规则
可变参数
可变参数本质就是一个数组
作用:在形参中接收多个数据
格式:数据类型 ....参数名称 例int.....a
注意: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方法
