尝试将两个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。