Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何遍历对象数组列表_Java_Hibernate - Fatal编程技术网

Java 如何遍历对象数组列表

Java 如何遍历对象数组列表,java,hibernate,Java,Hibernate,所以现在我有一个程序包含一段代码,看起来像这样 Criteria crit = session.createCriteria(Product.class); ProjectionList projList = Projections.projectionList(); projList.add(Projections.max("price")); projList.add(Projections.min("price")); projList.add(Projections.countDisti

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

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();

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

您可以在列表中使用泛型,但对于当前代码,您可以执行以下操作进行迭代

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

}

您可能可以这样做:

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

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

....
List<Object[]> results = crit.list();

for (Object[] result : results) {
    Integer maxPrice = (Integer)result[0];
    Integer minPrice = (Integer)result[1];
    Long count = (Long)result[2];
}
。。。。
列表结果=crit.List();
对于(对象[]结果:结果){
整数maxPrice=(整数)结果[0];
整数minPrice=(整数)结果[1];
长计数=(长)结果[2];
}

如果这是学校作业,请将其标记为学校作业。否则,List results=crit.List();然后对于(产品p:results){},或者如果你想稍微现代一点,可以使用迭代器?比如(迭代器pi=results.Iterator();pi.hasNext();){Product p=pi.next();}是的,但是这个解决方案是老式的,技术含量低!谁可能不喜欢它呢?不可能将(object[])对象数组强制转换为像Foo这样的对象
....
List<Object[]> results = crit.list();

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