gpt4 book ai didi

java - TreeMap ClassCastException

转载 作者:行者123 更新时间:2023-12-01 07:06:54 25 4
gpt4 key购买 nike

my code:

TreeMap<String,Book> booksTree=new TreeMap<String,Book>(new StringCompare());
Book b1=new Book("b1");
booksTree.put(b1.getCode(), b1);
Book b3=booksTree.get(b1);
System.out.println(b3.toString());

我在其他帖子中读到我必须添加比较器,所以写道:

import java.util.Comparator;

public class StringCompare implements Comparator<String>
{
public int compare (String c1, String c2)
{
return c1.compareTo(c2);
}

}

我得到:

Exception in thread "main" java.lang.ClassCastException: maman18.Book cannot be cast to java.lang.String
at maman18.StringCompare.compare(StringCompare.java:1)
at java.util.TreeMap.getEntryUsingComparator(Unknown Source)
at java.util.TreeMap.getEntry(Unknown Source)
at java.util.TreeMap.get(Unknown Source)
at maman18.Main.main(Main.java:31)

这是我第一次使用 TreeMap 和字符串,不知道如何很好地使用它,请帮我解决这个问题,以便 get 函数工作。

最佳答案

问题是 get 方法需要一个与您定义的 map 具有相同数据类型的键(即您的情况下的 String )。

所以应该是:

Book b3=booksTree.get(b1.getCode());

这在 doc 中指定:

ClassCastException - if the key is of an inappropriate type for this map (optional)

它说是可选的,因为对于每个示例的 HashMapget 将返回 null。因此,您将在 System.out.println(b3.toString()); 行上出现 NullPointerException

但对于 TreeMap 来说,此异常为 thrown .

ClassCastException - if the specified key cannot be compared with the keys currently in the map

关于java - TreeMap <String,object> ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21971078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com