Java中的TreeMap[78]
一、TreeMap概念
1.基于二叉树的红黑树实现;
2.根据哈希值排序的,想实现自定义类排序需要类实现Comparable比较器接口;
3.存放自定义类需要重写hashCode与equals方法;
4.键如果相同,则会保持键的数据和位置,但修改其值;文章来源:https://www.toymoban.com/news/detail-460410.html
二、代码演示
private static void TreeMap(){
Map<Cat,Integer> 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<Cat>{
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://www.toymoban.com/news/detail-460410.html
到了这里,关于Java中的TreeMap[78]的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!