Generics 为什么对具有相同模板值参数类型的comparator类型未定义TreeMap构造函数?
我的地图的值类型是一个Generics 为什么对具有相同模板值参数类型的comparator类型未定义TreeMap构造函数?,generics,constructor,comparator,treemap,Generics,Constructor,Comparator,Treemap,我的地图的值类型是一个列表 我想按列表中第一对的左侧排序。但有一个错误说: 构造器 TreeMap(比较器) 是未定义的 这是我的密码: import java.util.TreeMap; import org.apache.commons.lang3.tuple.Pair; Map<String, List<Pair<Integer, String>>> data = new HashMap<String, List<Pair<Integ
列表
我想按列表中第一对的左侧排序。但有一个错误说:
构造器
TreeMap(比较器)
是未定义的
这是我的密码:
import java.util.TreeMap;
import org.apache.commons.lang3.tuple.Pair;
Map<String, List<Pair<Integer, String>>> data = new HashMap<String, List<Pair<Integer,String>>>();
....
Comparator<List<Pair<Integer, String>>> valueComparator = new Comparator<List<Pair<Integer, String>>>() {
@Override
public int compare(List<Pair<Integer, String>> o1,
List<Pair<Integer, String>> o2) {
int rzt = o1.get(0).getLeft() - o2.get(0).getLeft();
return rzt;
}
};
TreeMap<String, List<Pair<Integer, String>>> sortedByValues = new TreeMap<String, List<Pair<Integer, String>>>(valueComparator);
sortedByValues.putAll(data);
import java.util.TreeMap;
导入org.apache.commons.lang3.tuple.Pair;
映射数据=新的HashMap();
....
比较器值比较器=新比较器(){
@凌驾
公共整数比较(列表o1,
列表(o2){
int rzt=o1.get(0.getLeft()-o2.get(0.getLeft();
返回rzt;
}
};
TreeMap sortedByValues=新的TreeMap(valueComparator);
sortedByValues.putAll(数据);
比较器应该比较键而不是值。的构造函数具有以下签名:
public TreeMap(Comparator<? super K> comparator)
public TreeMap(Comparator该Comparator
应比较键而不是值。的构造函数具有以下签名:
public TreeMap(Comparator<? super K> comparator)
公共树映射(比较器