java遍历对象数组列表
我使用原生sql进行查询,代码如下
private <T> List<T> executeNativeQuery(String queryString,
Map<String, Object> param, Class<T> clazz) {
Query query = entityManager.createNativeQuery(queryString);
if (param != null && param.size() > 0) {
for (Map.Entry<String, Object> entry : param.entrySet()) {
query.setParameter(entry.getKey(), entry.getValue());
}
}
List<T> resultList = query.getResultList();
return resultList;
}
并得到以下数据库结果
VendorName | IncidentID | IncidentStatus | IncidentDate
-------------------------------------------------------
XYZ | 100 | Open | 02-JUN-2011
ABC | 101 | Closed | 03-JUN-2011
MNP | 102 | Open | 01-JUN-2011
LPQ | 103 | Open | 01-APR-2011
为了迭代这个结果,我使用以下方法
Iterator iter=resultList.iterator();
while (iter.hasNext()) {
Object[] result= (Object[]) iter.next();
System.out.println("Vendor Name-->" +result[0]);
}
有没有更好的方法反复浏览列表
# 1 楼答案
有一种“更好的方法”(java 5+各一种)实际上会使用迭代器转换为您所展示的内容,但语法更好:
另一种“更好的方法”依赖于这样一个事实,即您知道列表的大小,并且可以在for循环中使用计数器:
总而言之,有几种方法可以遍历列表,但有“更好”的方法是有争议的:这是一个用例问题(如果你也在使用
i
计数器处理其他事情,或者你在使用iterator
从列表中删除一些元素),或者仅仅是一个品味问题(低级与语法糖)