【发布时间】:2017-12-18 07:01:03
【问题描述】:
我有一个list,屏幕上有大约 2000 条或更多记录,这实际上使我的页面在加载时变慢。
现在我想要实现的是我有两个按钮previous 和next。最初在屏幕上显示前 50 条记录,然后单击 next 后显示另一组 50 条记录。我的object 中有一个属性(rowNum),它存储rownum。
我知道传统的做法是遍历loop。但是有没有更快的方法,比如每次获取下 50 条记录时避免循环?
activeCities 是包含 2000 条记录的列表,我需要对其进行迭代,每次都显示 50 条记录。
以下是我当前工作的代码。
int rowNum=0;
MyCity myCityObject;
for(Object[] obj : activeCities) {
myCityObject = new MyCity();
myCityObject.setRowNum(rowNum);
rowNum++;
myCityObject.setCityUsers((String)obj[0]);
myCityObject.setCityPreferenceId(NumberUtil.convert((BigDecimal)obj[1]));
myCityObject.setHeadOfficeId(NumberUtil.convert((BigDecimal)obj[2]));
.
.
.
myNewList.add(myCityObject);
if(rowNum==numberReached)
break;
}
【问题讨论】:
-
我在这里有很多需要澄清的问题。您如何检索这些数据?你将它发送到哪里 - 通过 MVC 或通过 REST 的视图?
-
@Makoto 不,我有一个列表,其中已经有 2000 条记录。考虑到作为主列表现在我只想显示和播放列表。我已经从视图中获取了 2000 条记录。
-
为什么要使用数组列表?我建议创建一个城市对象
-
AFAIK 的性能杀手是将这 2000 条记录从数据库传输到 Java。一旦你已经咬紧牙关,你如何迭代结果集就不再是一个问题了。
-
docs.oracle.com/javase/7/docs/api/java/util/… - 如果是 arrayList 则使用 subList
标签: java for-loop java-8 iterator