Discuss / Java / TreeMap与HashMap不同的地方。一个有意思的发现

TreeMap与HashMap不同的地方。一个有意思的发现

Topic source

张卿长

#1 Created at ... [Delete] [Delete and Lock User]
public static void main(String[] args) {    Map<Book,Integer> map=new TreeMap<>();    map.put(new Book("nihao",20),111);    map.put(new Book("apple",10),222);    map.put(new Book("orange",40),333);    Book book1=new Book("nihao",20);    System.out.println(map.get(book1));    System.out.println("----");    for(Book b:map.keySet()){        System.out.println(map.get(b));    }}

这里有一个有意思的事,就是我的Book类中并没有覆写equals方法,按照当时在HashMap中的实践,如果我的key没有覆写equals方法,实际上是没有办法获取value的。

但是`TreeMap`的行为与`HashSet`或`HashMap`不同。后者使用`equals`和`hashCode`方法来确定键的唯一性,而`TreeMap`则使用`compareTo`。


  • 1

Reply