gpt4 book ai didi

java - Java Map中使用BitSet作为key时如何解决ClassCastException

转载 作者:行者123 更新时间:2023-12-01 18:53:24 25 4
gpt4 key购买 nike

我正在使用:

Map <BitSet,Double> Mymap=new TreeMap<>();

当我尝试打电话时:

Mymap.contains(someBitSetObject)

我收到以下运行时错误:

Exception in thread "main" java.lang.ClassCastException: java.util.BitSet cannot be cast to java.lang.Comparable
at java.util.TreeMap.getEntry(TreeMap.java:343)
at java.util.TreeMap.containsKey(TreeMap.java:227)

......................

尽管 BitSet 类有自己的 equals 方法,但 TreeMap 并未调用它。我被困住了。如何检查 MyMap 是否已包含 key 并且我需要 BitSet 类型的 key ?

请帮忙。

谢谢

最佳答案

TreeMap 依赖于可排序的键 - 不仅仅是可相等的:

The map is sorted according to the natural ordering of its keys, or by a Comparator provided at map creation time, depending on which constructor is used.

BitSet没有实现Comparable您需要提供 Comparator<BitSet>TreeMap构造函数,或使用不同类型的映射。如果您不关心排序顺序,请使用 HashMapLinkedHashMap 。如果您确实关心排序顺序,则需要自己指定顺序。

关于java - Java Map中使用BitSet作为key时如何解决ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15021870/

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