0

以下のようにフィールド 'code' に基づいて Arraylist を並べ替え、現在の arraylist に同じコードの合計価格で値を追加するレコードを追加したいと考えています。

No      Desc    Width      Height       Code        Price

1        WW     88.0        88.0      1021021       340.0       
4        TT     55.0        55.0      1021021       340.0       
5        PP     66.0        66.0      1021021       340.0   
2        gg     66.0        66.0      1021022       320.0       
3        LL     658.0       652.0     1021022       320.0

私の予想される出力は次のようになります

1        WW     88.0        88.0      1021021       340.0       
4        TT     55.0        55.0      1021021       340.0       
5        PP     66.0        66.0      1021021       340.0
                                                    1020
2        gg     66.0        66.0      1021022       320.0       
3        LL     658.0       652.0     1021022       320.0
                                                    640

この問題を解決する最善の方法を提案できる人はいますか? 前もって感謝します。

4

2 に答える 2

5

Java を使用する場合は、独自に記述して、および コンパレーターをメソッドComparatorに渡すことができます。ArrayListCollections.sort()

Javadoc から:

オブジェクトのコレクションに全体的な順序付けを課す比較関数。比較子を並べ替えメソッド (Collections.sortまたは などArrays.sort) に渡して、並べ替え順序を正確に制御できます。コンパレータは、特定のデータ構造 (並べ替えられたセットや並べ替えられたマップなど) の順序を制御したり、自然な順序付けを持たないオブジェクトのコレクションに順序付けをしたりするためにも使用できます。

于 2012-04-27T06:37:40.017 に答える
0

例を挙げますComparator

import java.util.Comparator;

public class CodeComparator implements Comparator<Item> {

    @Override
    public int compare(Item arg0, Item arg1) {
        return arg0.getCode().compareTo(arg1.getCode());
    }

}

次に、配列を次のように並べ替えます。

Collections.sort(itemList, new CodeComparator());
于 2012-04-27T06:56:10.680 に答える