如何使用MyClass的属性对<integer,myclass =“”>进行排序?</integer,>

时间:2011-10-05 17:03:25

标签: android json map

我正在使用GSON反序列化JSON,如下所示:

Type mapType = new TypeToken<Map<Integer, MyClass> >() {}.getType(); // define generic type
Map<Integer, MyClass> jsData= gson.fromJson(r, mapType);

MyClass是:

public class MyClass{
    private String status;  
    private String mObjectType; //Where mObjectType = Type1 = Type2 = Type3 = Type4
    //some more value + getters/setters
}

JSON响应是:

{
  128: {
    status: someValue,
    mObjectType: Type1
  },
  124: {
    status: someValue,
    mObjectType: Type3
  },
  123: {
    status: someValue,
    mObjectType: Type2
  }
}

此后我有Map个JSON数据,我可以遍历Map。我希望按Map按值mObjectType排序,以按特定顺序插入ListAdepter,每个部分都有ObjectType标题。

如何在mObjectType上对此地图进行排序?通过迭代器,我可以获得当前键的所有值。或者更好地实现自定义Comparator

UPD

我这样做了:

Iterator i = jsData.entrySet().iterator();
    while (i.hasNext()){
        Map.Entry iLookObj = (Map.Entry)i.next();
        MyClass temp = (MyClass)iWatchObj.getValue();
        if(temp.getObjectType().equals("ObjectType1")){
            ObjectType1.add(temp);
        } else if (temp.getObjectType().equals("ObjectType2")){
            ObjectType2.add(temp);
        }else if (temp.getObjectType().equals("ObjectType3")){
            ObjectType3.add(temp);
        }   
    }

不知道它有多么不同。

0 个答案:

没有答案