[英]combine two or more arraylist in one arraylist
嘗試將兩個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作為鍵,將IpDetails作為值。
當您觸發第一個查詢時,通過創建IpDetails對象並填充從Query中獲得的內容來填充地圖,並將計數2保留為未初始化。
當您觸發第二個查詢時,請執行以下操作:
現在,您已經擁有了所有三個詳細信息,因此您可以將值作為IpDetails的集合傳遞給GUI。
也許您可以像這樣輸出結果?
而且您還可以從中獲取對象結果。
public void tester() {
final List<NewClass> list1 = new ArrayList<NewClass>();
NewClass fetchValue11 = new NewClass();
fetchValue11.setIp("10.202.64.52");
fetchValue11.setCount(11);
NewClass fetchValue12 = new NewClass();
fetchValue12.setIp("127.0.0.1");
fetchValue12.setCount(5);
NewClass fetchValue13 = new NewClass();
fetchValue13.setIp("0:0:0:0:0:0:1");
fetchValue13.setCount(1);
list1.add(fetchValue11);
list1.add(fetchValue12);
list1.add(fetchValue13);
final List<NewClass> list2 = new ArrayList<NewClass>();
NewClass fetchValue21 = new NewClass();
fetchValue21.setIp("10.202.64.52");
fetchValue21.setCount(16);
NewClass fetchValue22 = new NewClass();
fetchValue22.setIp("127.0.0.1");
fetchValue22.setCount(0);
NewClass fetchValue23 = new NewClass();
fetchValue23.setIp("0:0:0:0:0:0:1");
fetchValue23.setCount(4);
NewClass fetchValue24 = new NewClass();
fetchValue24.setIp("10.202.64.78");
fetchValue24.setCount(18);
list2.add(fetchValue21);
list2.add(fetchValue22);
list2.add(fetchValue23);
list2.add(fetchValue24);
List<NewClass> list = new ArrayList<NewClass>();
list.addAll(list2);
list.addAll(list1);
System.out.println(list.size());
Collections.sort(list, new Comparator<NewClass>() {
public int compare(final NewClass o1, final NewClass o2) {
if (o1.getIp().equals(o2.getIp())) {
System.out.println(o1.getIp() + "---" + o1.getCount() + "---" + o2.getCount());
}
return o1.getIp().compareTo(o2.getIp());
}
});
}
這個如何?
public List get3Data() {
final List<NewClass[]> data3 = new ArrayList<NewClass[]>();
List<NewClass> list = new ArrayList<NewClass>();
list.addAll(data);
list.addAll(data1);
Collections.sort(list, new Comparator<NewClass>() {
public int compare(final NewClass o1, final NewClass o2) {
if (o1.getIp().equals(o2.getIp())) {
data3.add(new NewClass[]{o1, o2});
}
return o1.getIp().compareTo(o2.getIp());
}
});
return data3;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.