java - Java中两个List的比较以及使用JSTL在JSP中以表格格式显示两个List之间的差异

标签 java jsp arraylist

我有两个 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;
 }

我收到的输出是- enter image description here 但它没有给出正确的区别。我犯了什么错误?

最佳答案

如果我正确理解了你的问题。您想要做的是,如果两个数组列表具有相同索引的值,则打印差异;或者当只有一个数组列表具有相同索引的值时,打印零。

对此有两种可能性。

如果您的数组列表仅包含非零值。您可以按如下方式更改 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/

相关文章:

java - HTTP 错误 : 404 in accessing to kura web ui

java - 错误 : java. lang.UnsatisfiedLinkError with roboelectric and realm

java - 将请求转发到 JSP

java - 从 Tomcat 服务器中的 netbeans 项目运行 JSP

javascript - 使用 STRUTS 禁用自动完成(自动完成 ="off")

java - 查找 int 数组中某个值的所有可能组合

java - 使用 TestNG 运行代码时出现空指针异常

java - "java.sql.SQLException: No suitable driver found"代码错误,但 gui 没有错误

java - 如何检查对象 ArrayList 是否包含没有循环的对象的单个属性

java - 如何在JAVA中调用构造函数时从列表中调用特定对象?