ArrayLists的ArrayList:如何添加先前ArrayList的副本然后追加到它?

时间:2017-09-21 15:57:57

标签: java arraylist

我有一个包含另一个ArrayList(B)的ArrayList(A)。我试图将A n-1 的B添加到A n ,然后将更多内容添加到列表中。一个例子:

list 0: a
list 1: a b
list 2: a b c
list 3: a b c d

我有什么:

public static ArrayList<ArrayList<String>> outer = new ArrayList<>();
public static ArrayList<String> inner = new ArrayList<>();

// ..
// main

    populate("b", 0);

// ..

static void populate(String last, int copy_index) {

    if(outer.size() == 0) {
        outer.add(inner);
        outer.get(0).add(last);
    } else {
        outer.add(inner);
        // add the copies
        int loop_count = outer.get(copy_index).size();
        int end = outer.size() - 1;

        for(int i = 0; i < loop_count; i++) {
            String temp = outer.get(copy_index).get(i);
            outer.get(end).add(temp);
        }

        outer.get(end).add(last);
        System.out.println("list #" + end);
        for(int i = 0; i < outer.get(0).size(); i++) {
            System.out.println("i: " + i + " " + outer.get(0).get(i));
        }
    }
}

这似乎附加了原始列表(A 0 )和新列表(A n ),我的列表将成为:

list 0: a
~
list 0: a a b
list 1: a a b

我用outer.get(end).addAll(outer.get(copy_index))尝试了这个,并且列表0和n的相同副本出现

0 个答案:

没有答案