欢迎光临散文网 会员登陆 & 注册

Java双列集合

2023-02-25 19:31 作者:回到唐朝当少爷  | 我要投稿

双列集合

最近刚学Java,随便记点学习笔记

双列集合的特点:

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

  2. 键不能重复,值可以重复

  3. 键和值是一一对应的

  4. 键+值整体称为"键值对"或"键值对对象",在java中叫作"Entry"对象

Map常见API

Map是双列集合的顶层接口,它的功能是全部双列集合都可以继承使用的

Map的遍历方式

1.键找值

2.键值对

3.lambda表达式

HashMap

  1. HashMap是Map里面的一个实现类

  2. 没有额外需要学习的特有方法,直接使用Map里面的方法就可以了

  3. 特点都是由键决定的:无序,不重复,无索引

  4. HashMap和HashSet底层原理是一样的,都是哈希表结构,数组+链表+红黑树

  5. 以来hashCode方法和equals方法保证键的唯一

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

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

LinkedHashMap

  • 由键决定:有序,重复,无索引

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

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

TreeMap

  • 底层和TreeSet底层原理一样,都是红黑树结构

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

  • 可排序:对键进行排序

  • 注意:默认按照键的从小到大进行排序,也可以自己规定键的排序规则

代码书写两种排序规则:

  1. 实现Comparable接口,指定比较规则

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

统计思想:利用Map排序

  • 如果题目中没有要求对结果进行排序,默认使用HashMap

  • 如果要求,则用TreeMap

  • 键:要统计的内容

  • 值:次数

三种双列集合的选择

  • 默认:HashMap

  • 如果要保证存取有序:LinkedHashMap

  • 如果要进行排序:TreeMap

可变参数

如果调用函数时想传入任意个参数,可这样写:

可变参数的小细节:

  1. 在方法的形参中最多只能写一个可变参数

  1. 在方法当中,如果除了可变参数以外还有其他的形参,那么可变参数要写在最后

Collections

  • java.util.Collections:集合工具类

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

常用方法名称 说明 public static  boolean addAll(Collection c, T... elements) 批量添加元素 public staticvoid shuffle(List<> list) 打乱List集合元素的顺序


Java双列集合的评论 (共 条)

分享到微博请遵守国家法律