java - 将 SimpleEntry 添加到 SortedMap

标签 java eclipse dictionary sortedmap

我想创建一个可以迭代和排序的变量,其中包含一个“移动”和一个 double 值。我认为我最好的选择是带有整数的 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的表达式需要unchecked转换才能符合AbstractMap.SimpleEntry 2.描述资源路径位置类型 类型安全:类型 AbstractMap.SimpleEntry 的表达式需要未经检查的转换以符合 AbstractMap.SimpleEntry

我完全不熟悉 Google map ,非常感谢您的帮助!

最佳答案

接口(interface)与实现

你的问题是SortedMap是一个 interface - 你不能实例化它。您需要选择适合您需要的实现。

例如,您可以使用 TreeMap .

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

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

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

阅读 JavaDoc 时寻找“接口(interface)”、“类”和“实现”等词.

enter image description here

关于java - 将 SimpleEntry 添加到 SortedMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53584047/

相关文章:

android - 如何调整 AVD 模拟器的大小(在 Eclipse 中)?

python - 如何根据Python中的现有列更新新列

java - Fragment 还是 MapView?

java - 如何在android中制作相同大小的所有arraylists

java - 如何获得对在 Eclipse 中工作的 Aspect J 的 IDE 支持

java - Eclipse,在库中定义的开放声明

c++ - 使用 map 时出现段错误

dictionary - 缺少映射键上的模板比较运算符

java - ArrayList 用户输入/输出查询

java - Android JSON 异常 - JSONArray 无法转换为 JSONObject