私はMap<String, List<String>>
(別名「マルチマップ」)を作成します。 List<String>
を使用する場合は、指定するURLの電話番号の数を知る必要はありません。あなたが配列ルートを選ぶなら、そうではありません。
Map<String, List<String>> results = new HashMap<String, List<String>>();
while (rs.next()) {
String url = rs.getString(1);
String phone = rs.getString(2);
List<String> phones = (results.contains(url) ? results.get(url) : new ArrayList<String>());
phones.add(phone);
results.put(url, phones);
}
Googleのコレクションには、すぐに使用できるマルチマップがありますが、これで十分だと思います。
もっと多くのアイテム(名前など)を保存したい場合は、すべてをまとめて1つのまとまりのあるものにするオブジェクトについて考え始める必要があります。 Javaはオブジェクト指向言語です。あなたはあまりにも低いレベルで思考をしているような罪悪感を感じます。文字列、プリミティブ、およびデータ構造は、オブジェクトのビルディングブロックです。おそらく、ここに人が必要です:
package model;
public class Person {
private String name;
private Map<String, List<String>> contacts;
// need constructors and other methods. This one is key
public void addPhone(String url, String phone) {
List<String> phones = (this.contacts.contains(url) ? this.contacts.get(url) : new ArrayList<String>());
phones.add(phone);
this.contacts.put(url, phones);
}
}
私はあなたのために残ります。
このようにすると、結果セットをPersonにマップする必要があります。しかし、あなたが投稿したコードからそのアイデアを見るべきです。
名前フィールドも保存したい場合はどうすればいいですか?名前URL [電話1、電話2]? – Hunt