Как повторно использовать объект ArrayList без изменения его значения в местах, где он уже сохранен? - PullRequest
0 голосов
/ 24 июня 2018

У меня есть ArrayLists внутри HashSet. Я добавляю числа в ArrayList с помощью цикла for и добавляю этот ArrayList в HashSet. Но когда я снова манипулирую ArrayList, манипуляции отражаются и в HashSet. Как я могу избежать этого? Это может быть связано с тем, что ссылка на объект ArrayList хранится в HashSet вместо его значения. Эта проблема может быть решена, если я каждый раз создаю новый объект ArrayList, но я пытаюсь этого избежать. Вот фрагмент кода, который я написал, чтобы проверить это ..

int n=10;
   Set<ArrayList> hash_Set = new HashSet<ArrayList>();
   ArrayList<Integer> al = new ArrayList<Integer>();
   for (int i=1; i<=n; i++)
       al.add(i);
   hash_Set.add(al);
   al.clear();

Есть ли способ использовать один и тот же объект HashSet и итеративно добавлять разные значения каждый раз? Заранее спасибо ..

...