返回resultSet对象数组中的最小值索引

时间:2015-10-28 17:41:31

标签: java sql resultset

我有一个返回结果集的查询 [5,3,4.5,6.7,2.4,8]

我试图在上面的例子中得到最小值的索引,例如4

我试图迭代结果,但它是一个对象数组,它不会将对象与Double进行比较,即使我转换为Double我仍然得到“无法将对象转换为Double错误。

这是我试过的

Query totalQuery = em
                .createQuery("SELECT AVG(a.first)-"+first+",AVG(a.second)-    "+second+",AVG(a.third)-"+third+",AVG(a.fourth)-"+fourth+",AVG(a.fifth)-    "+fifth+",AVG(a.sixth)-"+sixth+",AVG(a.seventh)-"+seventh+") FROM Games a WHERE     a.username='name'");
        int num=1,index=0;
        double maxAvg=-99999;
        for(Object obj: totalQuery .getResultList().toArray()){
            if(index>maxAvg){
                maxAvg=(Double)obj;
                index=num;
            }
            holeNum++;
        }

        return index;

感谢任何帮助

1 个答案:

答案 0 :(得分:0)

public class Objectodouble{

    public static void main(String[] args) {

        Object obj[] = {3.5,3.0, 5.6,7.8};
        double min=Double.MAX_VALUE;

        for(int i=0;i<obj.length;i++){

            double value = Double.parseDouble(obj[i].toString());
            if( value < min)
                min = value;

        }

        System.out.println("Min: "+min);
    } 
}

首先尝试将Object转换为String,然后使用Double.parseDouble(String)将其转换为double,然后您就可以将它与double变量进行比较。

您可能会尝试将Object直接转换为double我认为这是您遇到的问题。