我有一个返回结果集的查询 [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;
感谢任何帮助
答案 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我认为这是您遇到的问题。