我有两个 Arraylist,即 -
List<java_test> one=new ArrayList<java_test>();
List<java_test> two=new ArrayList<java_test>();
我有两个方法,它们分别返回定义的 ArrayList 值。 第一个数组列表(即一个)与第二个数组列表(即两个)相比具有更多值。
现在我想要
compare the values of both the array list and find out there difference
并以表格格式显示。此外,由于第一个数组与两个相比,第一个数组具有更多值。因此,当只有一个数组的值时,应显示0,因为存在差异。
EDIT-1
我试图实现计算差异 -
public LinkedHashMap < String, List < Double >> diff() {
for (int i = 0; i < one.size() && i < two.size(); i++) {
Comaprision refObj = one.get(i);
Comaprision stObj = two.get(i);
Double x = refObj.getBeam_current();
Double y = stObj.getBeam_current();
x = refObj.getBeam_energy();
y = stObj.getBeam_energy();
comparing(x, y);
x = refObj.getSt2_vs2_bag1_rb();
y = stObj.getSt2_vs2_bag1_rb();
comparing(x, y);
x = refObj.getSt2_vs2_bag2_rb();
y = stObj.getSt2_vs2_bag2_rb();
comparing(x, y);
x = refObj.getSt2_vs2_bag3_rb();
y = stObj.getSt2_vs2_bag3_rb();
comparing(x, y);
x = refObj.getSt2_vs2_bag4_rb();
y = stObj.getSt2_vs2_bag4_rb();
comparing(x, y);
dif.put("", z);
}
return dif;
}
public List < Double > comparing(Double x1, Double y1) {
if ((x1 > y1)) {
z.add(x1 - y1);
System.out.println("value of z is" + z);
} else {
z.add(y1 - x1);
}
return z;
}
我收到的输出是- 但它没有给出正确的区别。我犯了什么错误?
最佳答案
如果我正确理解了你的问题。您想要做的是,如果两个数组列表具有相同索引的值,则打印差异;或者当只有一个数组列表具有相同索引的值时,打印零。
对此有两种可能性。
如果您的数组列表仅包含非零值。您可以按如下方式更改 for 循环的条件
for (int i = 0; i < one.size(); i++) // since you have already specified first array list is larger than the second.
然后将比较函数更改如下:
public List < Double > comparing(Double x1, Double y1) {
if(y1 == 0)
{
z.add(0);
}
else
if ((x1 > y1)) {
z.add(x1 - y1);
System.out.println("value of z is" + z);
} else {
z.add(y1 - x1);
}
return z;
}
如果您的数组列表包含零值。我建议做这样的事情
public LinkedHashMap < String, List < Double >> diff() {
for (int i = 0; i < one.size(); i++) {
if(i < two.size()){
Comaprision refObj = one.get(i);
Comaprision stObj = two.get(i);
Double x = refObj.getBeam_current();
Double y = stObj.getBeam_current();
x = refObj.getBeam_energy();
y = stObj.getBeam_energy();
comparing(x, y);
x = refObj.getSt2_vs2_bag1_rb();
y = stObj.getSt2_vs2_bag1_rb();
comparing(x, y);
x = refObj.getSt2_vs2_bag2_rb();
y = stObj.getSt2_vs2_bag2_rb();
comparing(x, y);
x = refObj.getSt2_vs2_bag3_rb();
y = stObj.getSt2_vs2_bag3_rb();
comparing(x, y);
x = refObj.getSt2_vs2_bag4_rb();
y = stObj.getSt2_vs2_bag4_rb();
comparing(x, y);
}
else{
for(i=0; i<(the number of variables your comparing in the if condition above); i++)
{
z.add(0.0);
}
}
}
dif.put("", z);
return dif;
}
public void comparing(Double x1, Double y1) {
if ((x1 > y1)) {
z.add(x1 - y1);
System.out.println("value of z is" + z);
} else {
z.add(y1 - x1);
}
}
关于java - Java中两个List的比较以及使用JSTL在JSP中以表格格式显示两个List之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28599931/