gpt4 book ai didi

java - java中如何将类类型对象转换为 double 类型

转载 作者:行者123 更新时间:2023-12-01 16:59:55 29 4
gpt4 key购买 nike

我有一个方法可以从两个不同的类类型列表中减去两个值。减法的代码是

public LinkedHashMap<String, List<Double>> diff()
{
List<Double> z=new ArrayList<Double>();
for(int i=0;i<st_jsp.size()&&i<ref_jsp.size();i++){
Double x=(double) ref_jsp.get(i);
Double y=st_jsp.get(i);

if(x>y){
z.add(x-y);
}
else{
z.add(y-x);
}

dif.put("", z);
}

return dif;

}

这里st_jsp和ref_jsp是两个列表如List<Ref_user_interface> st_jsp=new ArrayList<Ref_user_interface>();List<Ref_user_interface> st_jsp=new ArrayList<Ref_user_interface>(); Ref_user_interface 是我的类名。这两个列表的值(value)如下-

 ref.setSt1_vs1_bag6_rb(rs.getDouble(8));
ref.setSt1_vs1_bag7_rb(rs.getDouble(9));
ref.setSt1_vs1_bag8_rb(rs.getDouble(10));
st_jsp.add(ref);

其中引用号是 Ref_user_interface ref=new Ref_user_interface();在我的减法中,我得到一个**无法从Ref_user_interface转换为Double**在线Double x= ref_jsp.get(i);Double y=st_jsp.get(i); 。有什么方法可以让我从两个保存对象类型数据的列表中减去我的值。?

编辑-1我有 getter 和 setter 方法。但是对于列表的每个值,我是否必须包含 getter 方法?对于我的 getter 和 setter 方法,请访问链接 setter method of mine

EDIT-2

我已经根据你所有的答案改变了我的减法方法 -

public LinkedHashMap<String, List<Double>> diff()
{

List<Double> z=new ArrayList<Double>();

for(int i=0;i<st_jsp.size()&&i<ref_jsp.size();i++)
{
Comaprision refObj = ref_jsp.get(i);
Comaprision stObj = st_jsp.get(i);
Double x =refObj.getBeam_current();
x+=refObj.getBeam_energy();
x+=refObj.getSt2_vs2_bag1_rb();
x+=refObj.getSt2_vs2_bag2_rb();
x+=refObj.getSt2_vs2_bag3_rb();
x+=refObj.getSt2_vs2_bag4_rb();
x+=refObj.getSt2_vs2_bag5_rb();
x+=refObj.getSt2_vs2_bag6_rb();
x+=refObj.getSt2_vs2_bag7_rb();
x+=refObj.getSt2_vs2_bag8_rb();
x+=refObj.getSt2_vs2_bag9_rb();
Double y = stObj.getBeam_current();
y+=stObj.getBeam_energy();
y+=stObj.getSt2_vs2_bag1_rb();
y+=stObj.getSt2_vs2_bag2_rb();
y+=stObj.getSt2_vs2_bag3_rb();
y+=stObj.getSt2_vs2_bag4_rb();
y+=stObj.getSt2_vs2_bag5_rb();
y+=stObj.getSt2_vs2_bag6_rb();
y+=stObj.getSt2_vs2_bag7_rb();
y+=stObj.getSt2_vs2_bag8_rb();



if((x>y)){

z.add(x-y);
}
else{
z.add(y-x);

dif.put("", z);

}
return dif;

}

但我无法理解是否添加了 1 个索引处的所有值,然后与索引 1 处的 y 进行比较,依此类推。此外,这个循环给了我 42 个值。我的 ref_jsp 有21 行,st_jsp 有 78 行,但这些行的值重复了两次。我无法理解这个 for 循环。请帮我解释一下。我不知道想要在索引处添加我的值,

我的实际问题是 -->我只想将 x 的每个索引的 getter 处的值与 y 的每个索引的 getter 处的值进行比较并找出差异。

最佳答案

问题是您的列表返回 Ref_user_interface 的对象,因此您可以通过调用 getter 方法来获取值,例如

ref_jsp.get(i).getSt1_vs1_bag6_rb()

如果你想要所有的 getter 方法,请在 for 循环中尝试这个

for(int i=0;i<st_jsp.size()&&i<ref_jsp.size();i++){
Ref_user_interface refObj = ref_jsp.get(i);
Ref_user_interface stObj = st_jsp.get(i);
Double x = refObj.getSt1_vs1_bag6_rb();
Double y = stObj.getSt1_vs1_bag6_rb();
comparing(x,y);
x =refObj.getSt1_vs1_bag7_rb();
y = stObj.getSt1_vs1_bag7_rb();
comparing(x,y)

// and so on for all the getters method you have for this obj

public void comparing(Double x,Double y){
// write your comparing logic here and add value in map
if(x > 0 && y > 0){
if(x>y){
z.add(x-y);
}else{
z.add(y-x);
}
}else if(x>0){
z.add(x);
}else{
z.add(y);
}
}

等等你就得到了你想要的所有值,然后根据你的逻辑使用它。

关于java - java中如何将类类型对象转换为 double 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28473285/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com