将两个arraylists加入一个

我想检查branchList是否有相同的元素,如果同样把branchList和tglList元素分开arraylist并把那个arraylist放到另一个arraylist中,

我想要的结果是BranchList1有2个arraylist,其中第一个arraylist包含元素’1’,第二个arraylist包含元素’2’,TglList1有2个arraylist作为元素,但我得到的是第1和第2个数组得到相同的值。

如何才能做到这一点?

ArrayList branchList = new ArrayList(); branchList.add("1"); branchList.add("1"); branchList.add("1"); branchList.add("2"); branchList.add("2"); branchList.add("2"); ArrayList tglList = new ArrayList(); tglList.add("5"); tglList.add("10"); tglList.add("20"); tglList.add("100"); tglList.add("500"); tglList.add("1000"); ArrayList newBranchList = new ArrayList(); ArrayList newTglList = new ArrayList(); ArrayList BranchList1 = new ArrayList(); ArrayList TglList1 = new ArrayList(); ArrayList abc = new ArrayList(); String checkBranch = new String(); for(int i=0;i<branchList.size();i++){ String branch = branchList.get(i).toString(); if(i==0 || checkBranch.equals(branch)){ newBranchList.add(branch); newTglList.add(tglList.get(i).toString()); }else{ BranchList1.add(newBranchList); TglList1.add(newTglList); newBranchList.clear(); newTglList.clear(); newBranchList.add(branch); newTglList.add(tglList.get(i).toString()); } if(i==(branchList.size()-1)){ BranchList1.add(newBranchList); TglList1.add(newTglList); } checkBranch = branch; } } 

所以预期的结果如下:

 BranchList1 = [ [1,1,1],[2,2,2]] TglList1 = [[5,10,20],[50,100,200]] 

但我得到的是

 BranchList1 = [ [2,2,2],[2,2,2]] TglList1 = [[50,100,200],[50,100,200]] 

我该如何修改代码

我没有仔细阅读你的代码(我不太了解你所要求的),但是如果你想将branchListtglList的元素合并(添加元素)到TglList1 ,试试这个:

 TglList1.addAll(branchList); TglList1.addAll(tglList); 

之后, TglList1应包含两个列表的所有元素。 如果您需要对列表进行排序,您可能需要在之后调用Collections.sort(TglList1) (只需注意排序字符串可能在“2”之前放置“100”,因为“1”在词法上小于“2”) 。