Java双列集合
双列集合
最近刚学Java,随便记点学习笔记
双列集合的特点:
双列集合一次需要存一对数据,分别为键和值
键不能重复,值可以重复
键和值是一一对应的
键+值整体称为"键值对"或"键值对对象",在java中叫作"Entry"对象
Map常见API
Map是双列集合的顶层接口,它的功能是全部双列集合都可以继承使用的

Map的遍历方式
1.键找值
2.键值对
3.lambda表达式
HashMap
HashMap是Map里面的一个实现类
没有额外需要学习的特有方法,直接使用Map里面的方法就可以了
特点都是由键决定的:无序,不重复,无索引
HashMap和HashSet底层原理是一样的,都是哈希表结构,数组+链表+红黑树
以来hashCode方法和equals方法保证键的唯一
如果键存储的是自定义对象,需要重写hashCode和equals方法
如果值存储自定义对象,不需要重写hashCode和equals方法
LinkedHashMap
由键决定:有序,重复,无索引
有序指的是保证存储和取出的元素顺序一致
原理:底层数据结构依然是哈希表,还是每个键值对元素又额外多了一个双链表的机制记录存储的顺序
TreeMap
底层和TreeSet底层原理一样,都是红黑树结构
由键决定特性:不重复,无索引,可排序
可排序:对键进行排序
注意:默认按照键的从小到大进行排序,也可以自己规定键的排序规则
代码书写两种排序规则:
实现Comparable接口,指定比较规则
创建集合时传递Comparator比较器对象,指定比较规则
统计思想:利用Map排序
如果题目中没有要求对结果进行排序,默认使用HashMap
如果要求,则用TreeMap
键:要统计的内容
值:次数
三种双列集合的选择
默认:HashMap
如果要保证存取有序:LinkedHashMap
如果要进行排序:TreeMap
可变参数
如果调用函数时想传入任意个参数,可这样写:
可变参数的小细节:
在方法的形参中最多只能写一个可变参数
在方法当中,如果除了可变参数以外还有其他的形参,那么可变参数要写在最后
Collections
java.util.Collections:集合工具类
作用:Collections不是集合,而是集合工具类
常用方法名称 说明 public static boolean addAll(Collection c, T... elements) 批量添加元素 public staticvoid shuffle(List<> list) 打乱List集合元素的顺序