データベース ビューから 1 つの行を表すデータのリスト (ArrayList) を取得しています。通常、各列には単一の値がありますが、一部の列には次のように区切られた文字列値があります。
CompanyID CompanyName ContactIDs Contacts
49 Test Company 5;9 Alice;Bob
現在、最初の値のサブリストを取得し、残りをString.split()
で解析していますが、特に一度に数百のこれらのオブジェクトをロードするときのパフォーマンスが心配です。これが私の方法です:
public void loadFromData(List data) {
getCompany().load(data.subList(0, 2));
//Pulls 49 and Test Company and loads it into a Company object
getContacts().clear();
//getContacts() retrieves an ArrayList of Contact objects
String[] contactIds = ((String)data.get(2)).split(";");
String[] contactNames = ((String)data.get(3)).split(";");
List data = new ArrayList();
for (int i = 0; i < companyCategoryIds.length; i++) {
data.clear();
data.add(contactIds[i]);
data.add(getCompany().getCompanyId());
data.add(contactNames [i]);
getContacts().add(new Contact().load(data));
}
}
これを行うためのより良い方法はありますか?または、これはおそらく、与えられたリストを分割する最も効率的な方法ですか?
リスト自体を変更できないと仮定すると、「;」による結合 私がそれを取得する前に、データベースでサーバー側で行われます。
前もって感謝します!