製品の詳細をマップに保存し、ArrayList< HashMap< String,String >> に追加して、カスタム リスト アダプターに設定しています。値を価格で並べ替える必要があります。それを達成する方法は?前もって感謝します。
質問する
10790 次
5 に答える
18
以下のコードを使用してください。
ArrayList< HashMap< String,String >> arrayList=populateArrayList();
Collections.sort(arrayList, new Comparator<HashMap< String,String >>() {
@Override
public int compare(HashMap<String, String> lhs,
HashMap<String, String> rhs) {
// Do your comparison logic here and retrn accordingly.
return 0;
}
});
于 2012-08-27T07:13:27.403 に答える
7
Comparator<Map<String, String>>
またはを実装できますComparator<HashMap<String, String>>
それぞれいくつかのキーと値のペアを保持するHashMapのArrayListをどのように並べ替えますか? よく答えます:
class MapComparator implements Comparator<Map<String, String>>{
private final String key;
public MapComparator(String key){
this.key = key;
}
public int compare(Map<String, String> first,
Map<String, String> second){
// TODO: Null checking, both for maps and values
String firstValue = first.get(key);
String secondValue = second.get(key);
return firstValue.compareTo(secondValue);
}
}
...
Collections.sort(arrayListHashMap, new MapComparator("value"));
Javaの値でマップをソートする方法もご覧ください。
于 2012-08-27T07:22:52.140 に答える
2
配列リスト内のオブジェクトのカスタムソートにこれを簡単に使用できます。
public class MyComparator implements Comparator<MyObject> {
@Override
public int compare(MyObject o1, MyObject o2) {
return o1.getYOUROBJ1STR.compareTo(o2.getYOUROBJ2STR);
}
}
マップの並べ替えでまだ問題が発生している場合はお知らせください
于 2012-08-27T07:18:26.777 に答える
1
于 2012-08-27T07:23:10.943 に答える
1
于 2012-08-27T07:26:31.750 に答える