gpt4 book ai didi

java - 将 TreeMap.Submap 返回 : SortedMap, 回 TreeMap

转载 作者:行者123 更新时间:2023-12-02 00:48:19 28 4
gpt4 key购买 nike

这对我来说似乎太棘手,无法正确执行此操作。

我有一个TreeMap<Double, (user-defined)Object> ,我正在获取其中的子图:

        public static reqObj assignObj(reqObj vArg, int startDate, int endDate){
reqObj vOut=new reqObj();



if (keyAt(vArg.requestObject,startDate)>-1 && keyAt(vArg.requestObject,endDate)>-1){
System.err.println(keyAt(vArg.requestObject,startDate));
System.err.println(keyAt(vArg.requestObject,endDate));

//vOut.requestObject=(TreeMap<Double, dayObj>)

vArg.requestObject.subMap(
keyAt(vArg.requestObject,startDate),
keyAt(vArg.requestObject,endDate));

}

return vOut;
}

这正如预期的那样工作,但是当我将排序后的 map 转换回 (TreeMap) 时我收到以下错误:

  java.lang.ClassCastException: java.util.TreeMap$SubMap

任何帮助都会很棒。

最佳答案

问题正是错误所说的:返回的子图不是标准TreeMap,它是实现定义的内部类的实例。如果你看一下 subMap 的声明:

public SortedMap subMap(Object fromKey, Object toKey)

它所保证的是返回的对象实现 SortedMap 接口(interface),因此这是您唯一可以安全地转换到的对象。

话虽如此,没有理由实际转换为 TreeMap,因为它不提供任何超过 SortedMap 的附加功能。

关于java - 将 TreeMap.Submap 返回 : SortedMap, 回 TreeMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4241196/

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