Java中的TreeMap[78]

这篇具有很好参考价值的文章主要介绍了Java中的TreeMap[78]。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java中的TreeMap[78]




一、TreeMap概念

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

二、代码演示

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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据结构】二叉树---红黑树的实现

    目录 一.  红黑树的概念及性质 二.  红黑树结点结构的定义 三.  红黑树的插入操作      1. 情况一      2. 情况二        3. 情况三 四.  红黑树的验证 五.  红黑树与AVL树的比较 红黑树是一种自平衡的二叉搜索树,它在每个节点上增加了一个存储位来表示节点的颜色,

    2024年03月21日
    浏览(37)
  • 二叉树、红黑树、B树、B+树

    一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。 二叉树的 特点 : 每个结点最多有两棵子树,即二叉树不存在度大于2的结点。 二叉树的子树有左右之分,其子树的次序不能颠倒。 满二叉树:二叉树的

    2024年02月11日
    浏览(32)
  • 红黑树概念

    红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。 最长路径做多是最短路径的2倍 每个结点不

    2024年02月16日
    浏览(25)
  • 二叉搜索树:红黑树的原理和实现

    💭上文我们在遇到问题:二叉搜索树退化到单支导致效率和性能降低时,利用了AVL树解决。但是由于AVL树是一棵绝对平衡的树,每次修改树结构都要保证左右子树高度差的绝对值不超过1,这可能会引发多次旋转。因此,若我们要设计出一棵结构动态变化的二叉搜索树,利用

    2024年02月01日
    浏览(29)
  • 红黑树的概念与实现

    目录 ​一、红黑树的概念 1.什么是红黑树 2.红黑树满足的性质 3.红黑树存在的意义 二、红黑树的实现 1.类的构建 2.插入函数 (1)插入一个节点 (2)调整节点 (3)旋转 三、红黑树的检验 红黑树是一种二叉搜索树,每个结点增加一个变量表示结点的颜色,颜色只能是Red或

    2024年02月02日
    浏览(29)
  • 数据结构——常见二叉树的分类(完全二叉树、满二叉树、平衡二叉树、二叉搜索树、红黑树)

    专业术语 中文 描述 Root 根节点 一棵树的顶点 Child 孩子结点 一个结点含有的子树的根节点称为该结点的子节点 Leaf 叶子结点 没有孩子的节点 Degree 度 一个节点包含子树的数量 Edge 边 一个节点与另外一个节点的连接 Depth 深度 根节点到这个节点经过边的数量 Height 节点高度 从

    2024年02月03日
    浏览(35)
  • 数据结构-各种树(二叉树、二叉查找树、平衡二叉树、红黑树、B树、B+树)

    概念:二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树 特点:每个

    2024年02月09日
    浏览(38)
  • 【Java 数据结构】TreeMap和TreeSet的介绍

    目录 1、认识 TreeMap 和 TreeSet 2、TreeMap 的主要成员变量 3、TreeMap 的主要构造方法 4、TreeMap 和 TreeSet 的元素必须可比较 5、TreeMap 和 TreeSet 关于 key 有序  6、TreeMap 和 TreeSet 的关系  7、总结 TreeMap 和 TreeSet 是Java中利用搜索树实现的 Map 和 Set,它们的底层是红黑树,而红黑树是一

    2024年01月20日
    浏览(32)
  • Java----Hashmap,LinkedMap和TreeMap三者的区别

            其中map表示的意思为“映射”,HashMap,LinkedMap和TreeMap这三中类都是对Map接口的实现类,在数据插入方面,HashMap是无序插入,LinkedMap是有序插入,而TreeMap会根据键的值进行排序后再进行插入。在运行方面,前两个的运行速度较快,针对Map对象的存储会选择前两者,

    2024年02月13日
    浏览(33)
  • Java学数据结构(3)——树Tree & B树 & 红黑树 & Java标准库中的集合Set与映射Map & 使用多个映射Map的案例

    1.B树,阶M,数据树叶上,根的儿子数在2和M之间,除根外,非树叶节点儿子为M/2和M之间; 2.B树的插入引起分裂,B树的删除,引起合并和领养; 3.红黑树,根是黑的,红色节点的儿子必须是黑的,所有路径的黑色节点数相同; 4.红黑树的插入,颜色翻转,单旋转,插入节点定

    2024年02月11日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包