Почему я получаю пустой массив, поскольку я храню список в классе, а затем я сохраняю каждый объект класса в массив - PullRequest
0 голосов
/ 20 июня 2019

Это мой код

package sumit;
import java.util.ArrayList;

class sum1{
       ArrayList<Integer> list=null;
           sum1(ArrayList<Integer> list){
               this.list=new ArrayList<Integer>();
            this.list=list;
        }

        public ArrayList<Integer> getList() {
            return this.list;
        }
    }

public class Sk {
    static sum1[] x = new sum1[5];
    public static void main(String[] args) {
        ArrayList<Integer> list0 = new ArrayList<Integer>();
        list0.add(5);
        list0.add(6);

        sum1 s=new sum1(list0);
        x[0]=s;
        list0.clear();

        list0.add(8);
        list0.add(9);

        sum1 d=new sum1(list0);
        x[1]=d;
        list0.clear();
        System.out.println(x[0].getList());
        System.out.println(x[1].getList());
    }
}

Я получаю пустой массив, но я сохранил объекты в массив. Может кто-нибудь объяснить, почему я получаю такой вывод

OUTPUT:
[]
[]

Я знаю, что это происходит из-за list0.clear(), но разве этот список уже не сохранен в классе как копия? Почему list0.clear() влияет на список, хранящийся в классе?

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