gpt4 book ai didi

java - 具有分隔值性能的列表

转载 作者:行者123 更新时间:2023-12-01 13:59:12 25 4
gpt4 key购买 nike

我正在从数据库 View 中提取代表单行的数据列表(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));
}
}

有更好的方法来做到这一点吗?或者这可能是分配我给出的列表的最有效方法?

假设我无法更改列表本身,则通过“;”加入在我得到它之前,它已经在数据库的服务器端完成了。

提前致谢!

最佳答案

嗯,String.split() 是最直接的方法,但它确实使用正则表达式,如果你经常这样做,它可能会有点慢。但是,由于您正在进行数据库访问(速度要慢得多),所以我还不用担心。在尝试摆脱 String.split() 之前,运行探查器来查看是否确实存在问题。优化并不是仅仅因为您感觉某些事情很慢而进行的事情。

关于java - 具有分隔值性能的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19436344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com