【问题标题】:Adding a SimpleEntry to a SortedMap将 SimpleEntry 添加到 SortedMap
【发布时间】:2023-03-06 08:56:01
【问题描述】:

我想创建一个变量,我可以稍后对其进行迭代和排序,其中包含一个“移动”和一个双精度值。我认为我最好的选择是带有整数的 SortedMap(我读到我需要某种比较器)和一个包含我的实际数据的条目。我有这个方法

    public SortedMap<Integer, Entry<Move, Double>> listFishMoves(Field fishField) {
    ArrayList<Move> fishMoves = getFishMoves(fishField);
    SortedMap<Integer, SimpleEntry<Move, Double>> moveMap = new SortedMap<Integer, SimpleEntry<Move, Double>>();
    int i = 0;
    for (Move move : fishMoves) {
        double turnValue = getMoveValue(move);
        moveMap.put(i, new SimpleEntry(move, turnValue));
        i++;
    }
}

我的问题是在初始化 SortedMap 时第 3 行出现错误(无法实例化类型 SortedMap>)。 添加新的 SimpleEntry 时,我还会收到 2 个警告: 1. 类型安全:AbstractMap.SimpleEntry 类型的表达式需要未经检查的转换才能符合 AbstractMap.SimpleEntry 2. 描述资源路径位置类型 类型安全:AbstractMap.SimpleEntry 类型的表达式需要未经检查的转换才能符合 AbstractMap.SimpleEntry

我是地图新手,非常感谢您的帮助!

【问题讨论】:

标签: java eclipse dictionary sortedmap


【解决方案1】:

接口与实现

您的问题是 SortedMapinterface - 您无法实例化它。您需要选择适合您需要的实现。

例如,您可以使用TreeMap

SortedMap<Integer, SimpleEntry<Move, Double>> moveMap = new TreeMap<>();

对于警告,将您的行更改为

moveMap.put(i, new SimpleEntry<>(move, turnValue));

在阅读JavaDoc 时寻找“接口”、“类”和“实现”等词。

【讨论】:

  • 看起来我在阅读文档时错过了这一点,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-10
  • 1970-01-01
  • 2019-08-10
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多