尝试将两个ArrayList合并为一个,下面是两个List的值。 W_VISIT描述特定的HOST_ADDR地址访问了网页多少次。

HOST_ADDR-W_VISIT

10.202.64.52-11

10.202.64.78-5

10.202.64.34-1

HOST_ADDR-W_VISIT

10.146.84.179-1

10.202.64.52-16

10.202.64.78-18

我在这里尝试做的就是结合两个数组列表(SQL中完全外部联接的种类)

输出:

10.202.64.52-11-16

10.202.64.78-5-18

10.202.64.34-1-0

10.146.84.179-0-1

等等..

public  List getData()
{
    data=new ArrayList();
    ResultSet rs=ps.executeQuery();
    while(rs.next()){
         fetchValue=new NewClass();
         fetchValue.setCount(rs.getInt(1));
         fetchValue.setIp(rs.getString(2));
         data.add(fetchValue);
      }

    return data;
}
public List get2Data()
{
    data1=new ArrayList();
    ResultSet rs=ps.executeQuery();
    while(rs.next()){
         fetchValue1=new NewClass();
         fetchValue1.setCount(rs.getInt(1));
         fetchValue1.setIp(rs.getString(2));
         data1.add(fetchValue1);
      }

    return data1;
}
public List get3Data(){
 //what to do here... not looking for code, just seeking a way to do

}

最佳答案

创建一个名为IpDetails的新类,其中包含三个字段


ip
数1-给个好名字
数2


在对象级别定义一个映射,将ip作为键,将IpDetails作为值。

当您触发第一个查询时,通过创建IpDetails对象并填充从Query中获得的内容来填充地图,并将计数2保留为未初始化。

当您触发第二个查询时,请执行以下操作:


从映射中,获取给定ip地址作为关键字的对应IpDetails。
立即填充count2字段


现在,您已经拥有了所有三个详细信息,因此您可以将值作为IpDetails的集合传递给GUI。

08-03 13:58