目前我必须添加整个地图,如最后一行所示。
PriorityQueue<Map.Entry<String, Integer>> sortedCells = new PriorityQueue<Map.Entry<String, Integer>>(3, new mem());
Map<String,Integer> pn = new HashMap<String,Integer>();
pn.put("hello", 1);
pn.put("bye", 3);
pn.put("goodbye", 8);
sortedCells.addAll(pn.entrySet());
如果我只想添加
怎么办?("word" 5)
如果我这样做
sortedCells.add("word",5)
我得到一个参数错误。
如何添加单个元素?
答案 0 :(得分:2)
您应该添加multiDexEnabled
个对象而不只是Map.Entry
,因为优先级队列的通用类型为("word", 5)
。在这种情况下,您应该创建自己的Map.Entry<String, Integer>
类:
Map.Entry
在您的代码中,您现在可以致电:
final class MyEntry implements Map.Entry<String, Integer> {
private final String key;
private Integer value;
public MyEntry(String key, Integer value) {
this.key = key;
this.value = value;
}
@Override
public String getKey() {
return key;
}
@Override
public Integer getValue() {
return value;
}
@Override
public Integer setValue(Integer value) {
Integer old = this.value;
this.value = value;
return old;
}
}
如果您不想实施自己的参赛作品,可以使用AbstractMap.SimpleEntry:
sortedCells.add(new MyEntry("word",5));