将SimpleEntry添加到SortedMap

时间:2018-12-02 19:56:12

标签: java eclipse dictionary sortedmap

我想创建一个变量,以后可以对其进行迭代和排序,其中包含“ Move”和一个double值。我以为我最好的镜头是带整数的SortedMap(我读到我需要某种比较器)和一个包含我的实际数据的Entry。我有这种方法

    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

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

1 个答案:

答案 0 :(得分:1)

接口与实现

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

例如,您可以使用TreeMap

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

对于警告,将行更改为

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

在阅读JavaDoc时,请查找“接口”,“类”和“实现”一词。

enter image description here