2

クエリを介して複数のレコードを文字列として受け取りました。同じ「長い」キーを持つレコードを、ループで解析するときに動的にコレクションに格納したいと考えています。同様に、キーと値を挿入し、キーが存在する場合は値に追加し、存在しない場合は新しいキーを作成します。これを行う最も効率的な方法は何でしょうか? 複数の配列を使用してそれを行うことができますが、よりクリーンな方法を好むでしょう。

HashMapとにかく最初にキーでリストをグループ化する必要があるため、最初にレコードをArrayorに保存してからArrayList挿入する必要があるため、 a を使用できません。いいえ。のレコードは一度に 50 を超えません。

例:

for(i = 0; i < numRecords; i++ ) {  
    Data: 1 "A", 2 "B", 1 "C", 3 "D", 1 "E"   
}

ループ内に追加できるコレクションが必要です:1つの「A」など..

4

1 に答える 1

4

私はMap<Long,List<String>>あなたを助けるかもしれないと思います。

Map<Long,List<String>> map = new HashMap<>();
...
if(map.get(key)!=null){
  List<String> list = map.get(key);
  list.add(value);
}else{
  List<String> list = new ArrayList<>();
  list.add(value);
  map.put(key,list);
}
于 2012-12-05T16:46:05.457 に答える