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に従ってそれらをソートしたいので、これを行う方法はありますか? 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 に答える