如何排序设置<map <string,object =“”>&gt;在Java中?

时间:2016-07-30 09:07:53

标签: string sorting object dictionary set

我想对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

0 个答案:

没有答案