我正在从数据库视图中提取代表单行的数据列表(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));
}
}
有没有更好的方法来做到这一点?或者这可能是划分我给出的列表的最有效方法?
假设我无法更改列表本身,则通过 ';' 加入 在我得到它之前在数据库的服务器端完成。
提前致谢!