0

我一直在寻找很多,但我没有找到合适的解决方案来解决我的问题。现在我想ArrayList<Hashmap<String, Object>>根据一个 int 值对一个进行排序。

HashMap<String, Object>map = new HashMap<String, Object>();
map.put("friend", "x");
map.put("status", "yyoyo");
map.put("time", "20:10");
map.put("lat", 30.030535);
map.put("lng", 31.506050);
map.put("distance", 50); 
statusMapList.add(map);

现在,这是一个示例。有statusMapList很多这样的Hashmap,我想根据distance值对它们进行排序,那么有什么办法吗?非常感谢。

4

2 回答 2

2

如果我正确理解您的用例,您应该更改数据表示。

创建一个实现 Comparable 的名为 Status 的类

public class Status implements Comparable<Status>
{
 String friend;
 String status;
 String time; // Or DateTime
 double lat;
 double lng;
 double distance;

// Override compareTo and use distance to decide the order
// Override equals
// Override hashcode
}

现在你应该创建一个ArrayList<Status>()然后Collections.sort()应该工作。

于 2013-04-28T21:31:00.393 回答
1

只需编写您自己的Comparator<HashMap<String, Object>>并使用此版本Collections.sort().

于 2013-04-28T21:25:13.933 回答