Map集合之TreeMap

本文详细介绍了Java中TreeMap的数据结构,包括其成员变量、构造器和成员方法。重点讲解了TreeMap如何通过键的自然排序或指定比较器进行查找、插入和删除操作。此外,还给出了实例代码展示TreeMap的使用,包括自定义比较器进行排序。
摘要由CSDN通过智能技术生成

return valEquals(key,e.getKey()) && valEquals(value,e.getValue());

}

public int hashCode() {

int keyHash = (key==null ? 0 : key.hashCode());

int valueHash = (value==null ? 0 : value.hashCode());

return keyHash ^ valueHash;

}

public String toString() {

return key + “=” + value;

}

}

成员变量

K key,V value分别是TreeMap集合中存储的键值对的键和值

Entry<K,V> left 代表当前节点的左子节点

Entry<K,V> right 代表当前节点的右子节点

Entry<K,V> parent 代表当前节点的父节点

boolean color 代表当前节点的颜色,默认是黑色,为true

构造器

Entry<K,V>只提供了一个构造器 Entry(K key, V value, Entry<K,V> parent)

即:创建一个红黑树节点,只需要指定其存储的键值信息,以及其父节点引用。不需要指定左孩子和右孩子,以及颜色。

成员方法

提供了getKey()方法返回当前节点的key值。

提供了getValue(),setValue(V v)分别用于获取Value,以及覆盖Value后返回oldValue

重写了equals()方法用于判断两个红黑树节点是否相同。逻辑是:两个红黑树节点的key要么都为null,要么equals结果true,且,value要么都为null,要么equals结果为true。

重写了hashCode()方法。

重写了toString()方法。

构造器

===

public TreeMap()


public TreeMap() {

comparator = null;

}

无参构造器,即不指定比较器的构造器。

注意,此时插入集合的键值对的key的类型必须实现Comparable接口,即提供自然排序能力,否则会报错类型转换异常。

public TreeMap(Comparator<? super K> comparator)


public TreeMap(Comparator<? super K> comparator) {

this.comparator = comparator;

}

指定比较器的构造器。

指定的比较器用于比较key,且comparator指定了泛型,即比较器比较的元素的类型必须是K或者K的父类类型。

public TreeMap(Map<? extends K, ? extends V> m)


public Tre

  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值