gpt4 book ai didi

java - 使用参数构建多个对象并将它们传递给要添加到列表中的更多对象的最有效方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:40:31 26 4
gpt4 key购买 nike

我构建了一个非常慢的对象列表,我需要提高构建列表的速度。添加到列表中的对象本身有多个子对象,通常是 3 个对象,根据剩余要添加的数据量变为 2 个或 1 个。

我打算构建一个子对象数据 bean,因为传递的参数大部分相同,只有子对象发生变化。我相信有一种比我生成列表的方法更有效的方法。

这是我目前的代码:

List<MainObject> list = new ArrayList();
List<Data> dataList = getDataList();
MainObject mainObject;
int limit = 100;


for(int i = 0; i < limit; i += 3) {
if(i == limit - 1) {
list.add(mainObject = new MainObject(new SubObject(dataList.get(i), this, bBool, tabs)));
}else if(i == limit - 2) {
list.add(mainObject = new MainObject(new SubObject(dataList.get(i), this, bBool, tabs),
new SubObject(dataList.get(i +1), this, bBool, tabs)));
}else {
list.add(mainObject = new MainObject(new SubObject(dataList.get(i), this, bBool, tabs),
new SubObject(dataList.get(i +1), this, bBool, tabs),
new SubObject(dataList.get(i +2), this, bBool, tabs)));
}
}
return list;

参数“this, bBool, tabs”都是类变量并且总是相同的。我确实知道最后一个 else 条件大部分时间都会运行,所以它可能应该是 if 语句中的第一个条件,但我宁愿找到一种更好的方法来一起构建列表。

最佳答案

  1. 检查getDataList()返回的列表类型;对于您的用例,它必须是 ArrayList - 如果它是 Linkedlist,则获取索引调用既繁重又耗时

  2. 将 limit-1 和 limit-2 的情况移出 for 循环并退出循环 limit-2本身。

关于java - 使用参数构建多个对象并将它们传递给要添加到列表中的更多对象的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58409345/

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