Copy Two Dimensional ArrayList as new

前端 未结 4 1202
慢半拍i
慢半拍i 2020-12-21 08:42

So the issue I\'m having is after copying the 2d arraylist, changing the element from one 2d arraylist affects the other 2d arraylist. I want them to be completely separate

4条回答
  •  醉酒成梦
    2020-12-21 09:07

    I guess I was looking for something like this...

    import java.util.ArrayList;
    public class QuickTest {
        public static ArrayList> getTwoDimArrListCopy(ArrayList> original){
            ArrayList> copy = new ArrayList<>();
    
            for (ArrayList arr: original){
                copy.add(new ArrayList(arr));
            }
    
            return copy;
        }
    
        public static void main(String[] args) {
            ArrayList> firstTwoDimList = new ArrayList<>();
            ArrayList> secondTwoDimList = new ArrayList<>();
    
            firstTwoDimList.add(new ArrayList());
            firstTwoDimList.add(new ArrayList());
            firstTwoDimList.add(new ArrayList());
    
            Integer counter = 2;
            for(int arrI = 0; arrI < firstTwoDimList.size(); arrI++, counter+=2){
                firstTwoDimList.get(arrI).add(counter);
                counter+=2;
                firstTwoDimList.get(arrI).add(counter);
            }
    
            secondTwoDimList = getTwoDimArrListCopy(firstTwoDimList);
    
            System.out.println("firstTwoDimList.get(1).get(0) = " + firstTwoDimList.get(1).get(0));
            System.out.println("secondTwoDimList.get(1).get(0) = " + secondTwoDimList.get(1).get(0));
    
            firstTwoDimList.get(1).set(0, 7);
    
            System.out.println("firstTwoDimList.get(1).get(0) = " + firstTwoDimList.get(1).get(0));
            System.out.println("secondTwoDimList.get(1).get(0) = " + secondTwoDimList.get(1).get(0));
        }
    }
    

    I was just hoping there was a built in library that would do that getTwoDimArrListCopy() function for me...

提交回复
热议问题