Currently newResult
is getting values: [[0, 0, 1], [0, 0, 1], [0, 0, 1], [0, 0, 1]]
I am trying to get [[0, 0], [1, 0], [0, 1], [1, 1]]
Basically, as a base case, in result, I am putting [[0], [1]]
and then I am trying to add elements to it, thru copying result in newResult
twice and then appending 0 in first half and appending 1 in second half.
I am using clone()
also, but not able to resolve issue
import java.util.ArrayList;
public class ArrayListNestedTest {
public static void main(String[] args) {
ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
ArrayList<ArrayList<Integer>> newResult = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> zero = new ArrayList<Integer>();
zero.add(0);
ArrayList<Integer> one = new ArrayList<Integer>();
one.add(0);
result.add(zero);
result.add(one);
ArrayList<ArrayList<Integer>> tmp1 = new ArrayList<ArrayList<Integer>>();
ArrayList<ArrayList<Integer>> tmp2 = new ArrayList<ArrayList<Integer>>();
tmp1 = (ArrayList<ArrayList<Integer>>) result.clone();
tmp2 = (ArrayList<ArrayList<Integer>>) result.clone();
newResult.addAll(tmp1);
newResult.addAll(tmp2);
newResult.get(0).add(0);
newResult.get(1).add(0);
newResult.get(2).add(1);
newResult.get(3).add(1);
System.out.println("Hi");
}
}
Thanks
> result = new ArrayList<>();`. Never use `clone()`; use the copy constructor `List
– Bohemian Sep 02 '21 at 03:35> tmp1 = new ArrayList<>(result);` to copy a list (note that this is a shallow copy). You really need to debug your code; see https://stackoverflow.com/questions/25385173