【问题标题】:Java SortedMap - TreeMap Key out of RangeJava SortedMap - TreeMap 键超出范围
【发布时间】:2019-01-30 14:45:32
【问题描述】:

我正在做一个使用 TreeMap 作为时间索引的项目。

SortedMap<Long, String> expiryIndex = new TreeMap<>();
Long now = System.currentTimeMillis();
expiryIndex.put(now, null);

目标是以后能够创建“旧”项的 TailSet 而无需迭代。 但是,我没有走到这一步,因为我已经得到了一个例外:

SEVERE: Unhandled exception
java.lang.IllegalArgumentException: key out of range

我看不出我在这里做错了什么。

【问题讨论】:

  • 请在您访问TailSet的地方显示代码带有参数
  • 您确定您在声明之前和/或之后没有进行任何处理吗?我在本地 Eclipse(JDK 8)上运行你的 sn-p,它运行得很好。
  • 我在openjdk 11上运行代码,效果很好
  • 根据您在子地图上调用 Map.put() 而不是地图本身的错误。您只能将带有键的元素放在子图的边界内。
  • 在java 8中运行代码是可以的,但是TreeMap会抛出新的IllegalArgumentException("key out of range"),能支持更多的代码吗?

标签: java treemap sortedmap


【解决方案1】:

事实上,这确实是我的错。

我有一个更下方的代码块,我从中切出了一个尾部。由于这些切片是引用值,因此在相应的尾部切片中的放置超出了界限,尽管它被制成了完整的集合。因此,Davidxxx 的评论基本上就是暗示。

还是……很奇怪。谢谢

【讨论】:

    猜你喜欢
    • 2011-01-10
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多