2012-04-25 14 views
0

私は、資産がPOJOであり、そのセットと取得方法を持っている、タイプアセットのアーラリストを持っています。Javaグループ化の問題

ArrayList<Asset> assetItems; 

各資産は、今、タスクがassetItemsが自分の評価値に基づいてグループ化する必要がある

assetItems.get(i).getratingValue(); 

によって取り出すことができる ratingValueを持っています。いくつかのいずれかは、配列リスト内の項目のratingvalueは、出力が あるべき C グラム J C

ある最初場合の例 については、この

に私を助けることができます C C G

J
+0

でグループ化されたAssetのリストが含まれていますがグループ分けることを意味する?どのようなthreasholdなどの下のすべてのオブジェクトを整理するのですか? –

+0

またはこれに類するものは? http://www.anzaan.com/2010/06/grouping-objects-using-objects-property/ –

答えて

0

グループ化する場合は、Jon Skeetソリューションを参照してください。 あなたはソート意味ならば、あなたはこのコードを使用することができます:

Collections.sort(assetItems, new Comparator<Asset>() { 
    public int compare(Asset a1, Asset a2) { 
     return a1.getratingValue().compareTo(a2.getratingValue()); 
    } 
}; 
+0

評価値は文字列です。場合は、ロジックを使用することができます –

+0

@sonysamsungはい、問題なく、代わりにcompareTo()を使用します。私はそれを説明するために自分の投稿を編集しました –

3

Multimapのように聞こえます何をしたいです:

Multimap<String, Asset> map = Multimaps.newListMultimap(); 
for (Asset asset : assetItems) { 
    map.put(asset.getRatingValue(), asset); 
} 

次にあなたが特定の格付けを持つすべての資産を取得することができます。

for (Asset asset : map.get(someRating)) { 
    ... 
} 
+0

外部ジャーを使用しないでください:( –

+0

@sonysamsung:その他の要件については、 (http://tinyurl.com/so-hintsを読んでください)あなたはいつも独自の 'Multimap'実装をビルドすることができます。' Map > 'によってサポートされています。 –

+0

これらは唯一の要件です。外部ジャーを使ってください –

0

次のことができ、このようなしきい値に基づいてグループの資産。

Class AssetGroup 
    { 
    int thresholdrating; 
    ArrayList<Asset> listAssets; 

    // add Asset to group list 

    public void add(Asset a) 
    { 
    this.listAssets = a; 
    } 

    } 
1

あなたが何か試してみてください:

Map<Integer, List<Asset>> groupedAssets = new HashMap<Integer, List<Asset>>() 
for(Asset asset : assetItems) { 
    int ratingValue = asset.getratingValue(); 
    List<Asset> assets = groupedAssets.get(ratingValue); 
    if(assets == null) { // this rating value has never been retrieved before 
     assets = new ArrayList<Asset>(); 
     groupedAssets.put(ratingValue, assets); 
    } 
    assets.add(asset); 
} 

結果Mapをuを何ratingValue

+0

例を追加したので私は答えていません。しかし、誰かを助けるかもしれない場合に備えて、私は自分の答えを守っています! –

関連する問題