簡體   English   中英

將兩個arraylists加入一個

[英]adding two arraylists into one

我想檢查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”) 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM