Проблема со списком массивов при удалении

#java #android #collections

#java #Android #Коллекции

Вопрос:

привет, у меня проблема с объектами Arraylist, вот мой код

 ArrayList<String> globlalArrayList = new ArrayList<String>(); //declared in some other class
ArrayList<String> TempArray = getsomeTempObjects()//method
globlalArrayList = TempArray;
TempArray.clear();  //Here the Problem
  

в приведенном выше коде я хочу очистить все объекты tempArray. но это также очищает globlalArrayList
Кто-нибудь может сказать мне, что происходит и как я могу решить эту проблему

Ответ №1:

Вы не должны использовать только ссылочную копию. Используйте addAll() :

 globlalArrayList.addAll(TempArray);
  

То, что вы делаете сейчас, просто ссылается на один объект из двух ссылок. Если вы выполняете манипуляцию с одним, все это отражается на втором, поскольку они ссылаются на 1 (один) объект.

P.S. Java использует стиль camelCase, поэтому, пожалуйста, назовите свой массив как tempArray .

Комментарии:

1. да, я тоже пробовал это, но это также очищает globlalArrayList

2. я сожалею, что допустил ошибку ранее. итак, теперь работает метод addAll()