如何遍历Object数组列表

所以现在我有一个程序包含一段看起来像这样的代码……

Criteria crit = session.createCriteria(Product.class); ProjectionList projList = Projections.projectionList(); projList.add(Projections.max("price")); projList.add(Projections.min("price")); projList.add(Projections.countDistinct("description")); crit.setProjection(projList); List results = crit.list(); 

我想迭代结果。所以提前感谢您提供的任何帮助/建议。

在这种情况下,您将拥有一个列表,其元素是以下数组:[maxPrice,minPrice,count]。

 .... List results = crit.list(); for (Object[] result : results) { Integer maxPrice = (Integer)result[0]; Integer minPrice = (Integer)result[1]; Long count = (Long)result[2]; } 

您可以在List中使用Generic,但是对于每个但是对于当前代码,您可以执行以下迭代

 for(int i = 0 ; i < results.size() ; i++){ Foo foo = (Foo) results.get(i); } 

或者更好地去寻找每个循环的可读性

 for(Foo foo: listOfFoos){ // access foo here } 

你可以这样做:

 for (Object result : results) { // process each result }