Nowa zawartość listy bez przypisania.

Nowa zawartość listy bez przypisania.
LI
  • Rejestracja: dni
  • Ostatnio: dni
0

Napisałem kawałek kodu w Java który działa na ArrayList i przekazuje jako jeden z argumentów właśnie tą listę. Metoda zwraca tą listę po usunięciu z niej pewnych elementów.
Dlaczego po wykonaniu tej instrukcji :

Kopiuj
method(mainList);

zmienia mi główną listę tzn. równoważne z zapisem :

Kopiuj
mainList=method(mainList);
hauleth
  • Rejestracja: dni
  • Ostatnio: dni
4

W Javie zawsze przekazujesz przez wartość, a instancje obiektów są tak naprawdę tylko referencją do obiektu, więc jeśli modyfikujesz obiekt wewnątrz funkcji bez jakiejś formy kopii to modyfikujesz instancję. Nie wiem czy znasz C, ale możesz myśleć o instancjach obiektów w Javie jak o wskaźnikach w C. Zasada działania jest dokładnie taka sama.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.