-1

I have two java methods that are refarray_vac1() and refernece() which give two different lists namely

List<Vacc1_Decline> st_jsp=new ArrayList<Vacc1_Decline>();
List<Vacc1_Decline> ref_jsp=new ArrayList<Vacc1_Decline>(); 

having different values in it.The values in the list are coming from a sql query .The number of fields are same in both list. the sql query retrieve value from database corresponding to beam_current .The only difference between the list is due to the values supplied in beam_current at different time period.

The beam_current is very close to multiples of ten i.e. 10.01,20.03 etc.But sometimes beam_current value can be skipped in st_jsp i.e it may start from 19.99,30,60 , in such case there is skip of value corresponding to 10 and 50,So when this happen I want that 0 should be written to that particular beam_current and to all other fields in that particular row.For this there has to be some comparison between both the list beam_current field.

How to do this??The code for above is-

public  List<Vacc1_Decline> refarray_vac1(String fdate,String ldate) throws SQLException, ParseException {

        st_jsp.clear();
     List<Double> slist_user = new ArrayList<Double>(user_current_map.keySet());
      String s_user = StringUtils.join(slist_user, ',');
  try
            {  
              con = getConnection();
              stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);



                     String vs1= " WITH cte AS (SELECT b.logtime,b.beam_current,b.beam_energy,"+
                        " case when a.st1_vs1_bag1_onoff=0 then c.st1_vs1_bag1_rb ELSE 0 END as st1_vs1_bag1_rb,"+
                        " CASE when a.st1_vs1_bag2_onoff=0  then c.st1_vs1_bag2_rb else '0' END as st1_vs1_bag2_rb,"+
                        " CASE when a.st1_vs1_bag3_onoff=0  then c.st1_vs1_bag3_rb else '0' END as st1_vs1_bag3_rb,"+
                         " CASE when a.st1_vs1_bag4_onoff=0  then c.st1_vs1_bag4_rb else '0' END as st1_vs1_bag4_rb,"+
                         " CASE when a.st1_vs1_bag5_onoff=0  then c.st1_vs1_bag5_rb else '0' END as st1_vs1_bag5_rb,"+
                         " CASE when a.st1_vs1_bag6_onoff=0  then c.st1_vs1_bag6_rb else '0' END as st1_vs1_bag6_rb,"+
                        " CASE when a.st1_vs1_bag7_onoff=0  then c.st1_vs1_bag7_rb else '0' END as st1_vs1_bag7_rb,"+
                        " CASE when a.st1_vs1_bag8_onoff=0  then c.st1_vs1_bag8_rb else '0' END as st1_vs1_bag8_rb,"+
                        " Row_number() OVER(partition BY b.beam_current ORDER BY b.logtime) rn "+
                         "FROM INDUS2_BDS.dbo.DCCT b INNER JOIN(INDUS2_VACUUM.dbo.main_vacuum_analog c inner join INDUS2_VACUUM.dbo.main_vacuum_status a on c.logtime=a.logtime)"+
                            "ON a.LOGTIME = b.LOGTIME"+
                     " WHERE  b.logtime BETWEEN '"+fdate+"' AND '"+ldate+"'"+
                      " AND b.beam_current in("+s_user+"))"+
                   " Select logtime,beam_current,beam_energy,st1_vs1_bag1_rb,st1_vs1_bag2_rb,st1_vs1_bag3_rb,st1_vs1_bag4_rb,st1_vs1_bag5_rb,st1_vs1_bag6_rb,st1_vs1_bag7_rb,st1_vs1_bag8_rb"+
                    " from cte where rn=1 order by logtime";
             stmt.executeQuery(vs1);
               rs = stmt.getResultSet();

               while (rs.next()) {
                   Vacc1_Decline ref = new Vacc1_Decline();

                      ref.setLogtime(rs.getString(1));

                         ref.setBeam_current(rs.getString(2));

                          ref.setBeam_energy(rs.getString(3));

                      ref.setSt1_vs1_bag1_rb(rs.getString(4));

                      ref.setSt1_vs1_bag2_rb(rs.getString(5));
                    ref.setSt1_vs1_bag3_rb(rs.getString(6));

                      ref.setSt1_vs1_bag4_rb(rs.getString(7));

                      ref.setSt1_vs1_bag5_rb(rs.getString(8));

                      ref.setSt1_vs1_bag6_rb(rs.getString(9));

                      ref.setSt1_vs1_bag7_rb(rs.getString(10));

                      ref.setSt1_vs1_bag8_rb(rs.getString(11));



                  st_jsp.add(ref);

                }

            }
       catch( Exception e )
                {
                    System.out.println("\nException in refarray_vac1 "+e);
                }


       return st_jsp;
      }



    public  List<Vacc1_Decline> refernece(String name) throws SQLException, ParseException {
        ref_jsp.clear();
String first=name.substring(1, 19);
        String last =name.substring(24,42);
    List<Double> slist = new ArrayList<Double>(map1.keySet());
      String s = StringUtils.join(slist, ',');
      System.out.println("comma separated string reference "+s);

           try
                {  
                  con = getConnection();
                  stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);

String vs2="WITH cte AS (SELECT b.logtime,b.beam_current,b.beam_energy,"+
        " case when a.st1_vs1_bag1_onoff=0 then c.st1_vs1_bag1_rb ELSE 0 END as st1_vs1_bag1_rb,"+
        " CASE when a.st1_vs1_bag2_onoff=0  then c.st1_vs1_bag2_rb else '0' END as st1_vs1_bag2_rb,"+
        " CASE when a.st1_vs1_bag3_onoff=0  then c.st1_vs1_bag3_rb else '0' END as st1_vs1_bag3_rb,"+
         " CASE when a.st1_vs1_bag4_onoff=0  then c.st1_vs1_bag4_rb else '0' END as st1_vs1_bag4_rb,"+
         " CASE when a.st1_vs1_bag5_onoff=0  then c.st1_vs1_bag5_rb else '0' END as st1_vs1_bag5_rb,"+
         " CASE when a.st1_vs1_bag6_onoff=0  then c.st1_vs1_bag6_rb else '0' END as st1_vs1_bag6_rb,"+
        " CASE when a.st1_vs1_bag7_onoff=0  then c.st1_vs1_bag7_rb else '0' END as st1_vs1_bag7_rb,"+
        " CASE when a.st1_vs1_bag8_onoff=0  then c.st1_vs1_bag8_rb else '0' END as st1_vs1_bag8_rb,"+
     " Row_number() OVER(partition BY b.beam_current ORDER BY b.logtime) rn "+
        " FROM INDUS2_BDS.dbo.DCCT b INNER JOIN(INDUS2_VACUUM.dbo.main_vacuum_analog c inner join INDUS2_VACUUM.dbo.main_vacuum_status a on c.logtime=a.logtime)"+
                        "ON a.LOGTIME = b.LOGTIME"+
     " WHERE  b.logtime BETWEEN '"+first+"' and '"+last+"'"+
      " AND b.beam_current in("+s+"))"+
   " Select logtime,beam_current,beam_energy,st1_vs1_bag1_rb,st1_vs1_bag2_rb,st1_vs1_bag3_rb,st1_vs1_bag4_rb,st1_vs1_bag5_rb,st1_vs1_bag6_rb,st1_vs1_bag7_rb,st1_vs1_bag8_rb"+
    " from cte where rn=1 order by logtime";


                 System.out.println("refernce from map and dropdown is " +vs2);
                 stmt.executeQuery(vs2);
                 rs = stmt.getResultSet();

                 while(rs.next()) 
                    {
                     Vacc1_Decline ref = new Vacc1_Decline();

                     ref.setLogtime(rs.getString(1));

                     ref.setBeam_current(rs.getString(2));

                      ref.setBeam_energy(rs.getString(3));

                  ref.setSt1_vs1_bag1_rb(rs.getString(4));

                  ref.setSt1_vs1_bag2_rb(rs.getString(5));
                ref.setSt1_vs1_bag3_rb(rs.getString(6));

                  ref.setSt1_vs1_bag4_rb(rs.getString(7));

                  ref.setSt1_vs1_bag5_rb(rs.getString(8));

                  ref.setSt1_vs1_bag6_rb(rs.getString(9));

                  ref.setSt1_vs1_bag7_rb(rs.getString(10));

                  ref.setSt1_vs1_bag8_rb(rs.getString(11));
                     ref_jsp.add(ref);


                }   
                      }

             catch( Exception e )
                    {
                        System.out.println("\nException in reference "+e);
                    }

            return ref_jsp;
            }
tiddi rastogi
  • 526
  • 3
  • 10
  • 33
  • Actually there will never be exact match between both the list.I just want to compare the second field of both the list i.e beam_current and if both the values have a difference of 1 ,then it is fine otherwise put 0 in beam_current and all other fields in st_jsp list ,as this list can only skip beam_current values. – tiddi rastogi Mar 31 '15 at 07:11

1 Answers1

0

compare 2 lists in java

you can use list1.retainAll(list2)

LinkedList lList =  new LinkedList();
    ArrayList aList =  new ArrayList();

    // Add some elements to lList:
    lList.add("Isabella");
    lList.add("Angelina");
    lList.add("Pille");
    lList.add("Hazem");

    // Add some elements to aList:
    aList.add("Isabella");
    aList.add("Angelina");
    aList.add("Bianca");

    // Display the two collections before:
    System.out.println("The aList collection before: " + aList);
    System.out.println("The lList collection before: " + lList);

    // Delete the elements lList that are not in aList:
    lList.retainAll(aList);
Community
  • 1
  • 1
Pratik
  • 944
  • 4
  • 20