добавление двух массивов в один - PullRequest
11 голосов
/ 24 августа 2011

Я хочу проверить BranchList, имеет ли один и тот же элемент или нет, если один и тот же элемент elementList и tglList разделить отдельный массив и поместить этот массив в другой массив,

Результат, который я хочу получить, состоит в том, что BranchList1 имеет 2 массива, где 1-й массив содержит элемент «1», а 2-й массив содержит элемент «2», а TglList1 имеет 2 массива как элемент, но то, что я получаю, это 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]]

Как я могу изменить код

1 Ответ

30 голосов
/ 24 августа 2011

Я не полностью прочитал ваш код (и не совсем понял, о чем вы просите), но если вы хотите объединить (добавить элементы) branchList и tglList в TglList1, попробуйте это:

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

После этого TglList1 должен содержать все элементы обоих списков.Если вам нужно, чтобы список был отсортирован, вы можете вызвать Collections.sort(TglList1) после этого (просто обратите внимание, что строки сортировки могут помещать «100» перед «2», поскольку «1» лексически меньше, чем «2»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...