Java中的TreeMap[78] Java中的TreeMap[78]

Java中的TreeMap[78]




一、TreeMap概念

1.基于二叉树的红黑树实现;
2.根据哈希值排序的,想实现自定义类排序需要类实现Comparable比较器接口;
3.存放自定义类需要重写hashCode与equals方法;
4.键如果相同,则会保持键的数据和位置,但修改其值;

二、代码演示

private static void TreeMap(){
 Map map=new TreeMap();
 //自定义类中的键相同,则会保持键,修改值
 map.put(new Cat("狸花",1), 1);
 map.put(new Cat("橘花",2), 2);
 map.put(new Cat("三花",1), 3);
 map.forEach((k,v)->System.out.println(k+"->"+v));
}
//自定义类存放map需要实现hashCode和equals方法,实现排序需要实现Comparable比较器
class Cat implements Comparable{
 private int id;
 private String name;
 @Override
 public boolean equals(Object o) {
 if (this == o) {
 return true;
 }
 if (o == null || getClass() != o.getClass()) {
 return false;
 }
 Cat cat = (Cat) o;
 return id == cat.id &
 Objects.equals(name, cat.name);
 }
 @Override
 public int hashCode() {
 return Objects.hash(id, name);
 }
 @Override
 public String toString() {
 return "Cat{" +
 "id=" + id +
 ", name='" + name + '\'' +
 '}';
 }
 public Cat(String n, int i){
 this.id=i;
 this.name=n;
 }
 public int getId() {
 return id;
 }
 public String getName() {
 return name;
 }
 @Override
 public int compareTo(Cat o) {
 return this.getId()-o.getId();
 }
}

三.数据结构小结

本章概述了TreeMap的使用,那么数据结构到这先告一段落了,
1.数组;2.链表;3.二叉树(红黑树);4.哈希表(数组+链表+jdk1.8后的红黑树);5.栈;6.队列;系列主要讲了这六种数据结构,都是使用比较多的,没事常看看;
有哪里不足或者有更好的建议,欢迎留言吐槽,有哪里不懂的小伙伴,可以私信我,我会一一答复,感谢认可,感谢支持!

作者:道而起原文地址:https://blog.csdn.net/weixin_45539338/article/details/127901148

%s 个评论

要回复文章请先登录注册