我似乎無法找出爲什麼我得到這個ClassCastException異常用下面的代碼:ClassCastException異常時,轉換列表<地圖<字符串,雙>>到TreeSet的<地圖<字符串,雙>>
public static void main(String[] args) {
Map<String,Double> test0 = new TreeMap<String,Double>();
test0.put("test", 1.);
List<Map<String,Double>> test1 = Arrays.asList( test0);
Set<Map<String,Double> test2 = new TreeSet<Map<String,Double>>(test1)
}
所以不是我試圖通過測試1迭代並單獨放置地圖到TEST2如下:
public static void main(String[] args) {
Map<String,Double> test0 = new TreeMap<String,Double>();
test0.put("test", 1.);
List<Map<String,Double>> test1 = Arrays.asList( test0);
Set<Map<String,Double>> test2 = new TreeSet<Map<String,Double>>();
for (Map<String,Double> mp : test1)
test2.add(mp);
}
都給予同樣的例外涉及可比:
Exception in thread "main" java.lang.ClassCastException: java.util.TreeMap cannot be cast to java.lang.Comparable
at java.util.TreeMap.compare(TreeMap.java:1188)
at java.util.TreeMap.put(TreeMap.java:531)
at java.util.TreeSet.add(TreeSet.java:255)
at Delete.main(Delete.java:20)
任何深入瞭解爲什麼發生這種情況將不勝感激。謝謝!
你爲什麼使用'TreeSet'?如果你必須使用它,你必須提供一種方法來比較'Map'。 –
在我的項目中,我使用TreeSet來維護非重複項的排序順序。我應該使用不同的東西嗎? – RyanS
那麼,您希望在什麼基礎上對「TreeSet」中的地圖進行排序? –