【发布时间】:2015-02-12 09:05:26
【问题描述】:
我有一种方法可以从两个不同的类类型列表中减去两个值。减法代码是
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 是我的类名。
这两个列表具有以下价值-
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 是 Ref_user_interface ref=new Ref_user_interface();
在我的减法中,我得到一个 ** cannot convert from Ref_user_interface to Double** on line Double x= ref_jsp.get(i);Double y=st_jsp.get(i);。
有什么方法可以让我从两个包含对象类型数据的列表中减去我的值。?
EDIT-1 我有 getter 和 setter 方法。但是对于 list 的每个值,我是否必须包含 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 值进行比较并找出差异。
【问题讨论】:
-
如何在Double x中获取setter在list st_jsp中的所有getter方法,在Double y变量中获取setter在list ref_jsp中的所有getter方法,然后进行比较。?跨度>
标签: java list object casting subtraction