今天讲解Map常用的子类:HashMap
、LinkedHashMap
以及TreeMap
①、可以使用HashMap存储自定义类型
②、存储对象到Map集合中
③、如果对象作为key那么必须保证唯一,因为hashMap中键是唯一的
快捷键: Alt + Insert => equals and hashCode => next
注意一:为了确保唯一性,需要重写
hashCode()
和equals()
方法
注意二:
hashCode
相同时equals
可能相同也可能不相同,但是两个equals
相同则hashCode
一定相同
注意三:传入的对象作为键有两种方法-普通写法以及匿名对象的方法
普通方法:
Student student1 = new Student("张三",400);
map.put(student1,"张");
匿名对象:
map.put(new Student("李四",400),"李");
注意四:
HashMap
没有顺序,如果要保证存入的与取出的顺序一致,则需要使用到LinkedHashMap
能够保证存与取的顺序一致,如果需要Map集合中有顺序可以创建该类的对象
①、底层数据结构:红黑树
②、与Map相比没有什么特殊的功能
③、对键进行排序,有两种排序方法,取决于创建对象所使用的构造方法
自然排序:
比较器排序:
使用自定义的比较器那么该类必须是Comparator的实现类,直接重写Comparator的compare方法