0

毎日入手する類似のオブジェクト(おもちゃなど)の配列リストがあります。

List<Toy> toyList;   

おもちゃの豆には、名前、種類、コード、番号の4つのプロパティがあります。

  • コードは1から10までの任意の整数にすることができます(毎日すべてのコードを取得する必要はありません)
  • タイプは、文字列「1」または文字列「2」のいずれかです。

タイプとコードのおもちゃをまとめたレポートを次のように出力したいと思います。

One

name     type    number
--------------------------------
abc      1       19
pqr      1       20

Code 1 total     39

lmn      9       15

Code 9 total     15  

========================================  

Two

name     type    number
--------------------------------
hmn      6       18
efg      6       20

Code 6 total     38

jkl      5       15

Code 5 total     15 

私が持っているリストからこのようなレポートを簡単に作成するには、リストを2つのレベルに分ける必要があります。最初はタイプ(1と2)に基づいており、次に現在利用可能なコードに基づいています(すべてのコードが毎日利用できるわけではありません)。 。

これを達成するための最も効率的な方法は何ですか?

メインリストを繰り返してサブリストを作成することで、それを実現できます。しかし、すべてのコードが毎日利用できるわけではないという部分にどう対処するのでしょうか?今日利用可能なコードのみのサブリストを作成するにはどうすればよいですか?

読んでくれてありがとう!

4

3 に答える 3

2

すべてのおもちゃを繰り返し処理してSet、タイプやコードなどを取得できます。一貫した順序で表示されるように、SortedSetにすることをお勧めします。

Set<Type> types = EnumSet.noneOf(Type.class);
SortedSet<String> codes = new TreeSet<String>();
for(Toy toy: toys) {
   types.add(toy.getType());
   codes.add(toy.getCode());
}
于 2012-07-17T10:56:05.023 に答える
1

Lambdajライブラリのグループ化機能をご覧ください([アイテムのグループ化]セクションまでスクロールしてください)。

于 2012-07-17T11:19:25.063 に答える
0

これらのライブラリのいずれかを使用してみることができます。

于 2012-07-17T11:29:14.227 に答える