我想对Map类型Set进行排序,我已经递归地对Map进行了排序,但是当它排序Set of Map并且我无法对它进行排序时。我无法这样做。
我在TreeSet中尝试过覆盖比较器,但是没有用。
我的TreeSet<Object> sortedSet = new TreeSet(value)
错误低于此值; line:
TreeSet无法对Set
进行排序它提供了错误消息 -
java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.Comparable
at java.util.TreeMap.compare(TreeMap.java:1290)
at java.util.TreeMap.put(TreeMap.java:538)
at java.util.TreeSet.add(TreeSet.java:255)
at java.util.AbstractCollection.addAll(AbstractCollection.java:344)
at java.util.TreeSet.addAll(TreeSet.java:312)
at java.util.TreeSet.<init>(TreeSet.java:160)
值是Set(Map(String,Object)),我想排序并创建它的JSON对象。
public String getSortCode(Object value) {
Set<Object> sortedSet = sortSet((Set<Object>) value);
}
private Set<Object> sortSet(Set<Object> value) {
TreeSet<Object> sortedSet = new TreeSet(value);
sortedSet.forEach(entry -> {
if (entry instanceof Map) {
Map<String, Object> sortedSubMap = sortMap((Map) entry);
sortedSet.add((Object) sortedSubMap);
} else if (entry instanceof Set) {
Set<Object> sortedSubSet = sortSet((Set<Object>) entry);
sortedSet.add((Object) sortedSubSet);
}
});
return (Set<Object>) sortedSet;
}
先谢谢!! Sushobhit