Przesyłanie oryginalnej listy do metody

0

Witam, czy ktoś może mi powiedzieć w jaki sposób przesłać ArrayList do metody w taki sposób, aby pracować na oryginale ? W C++ są wskaźniki, a w Javie jak to się robi ? Z góry thx.

0

Przesyłając ArrayList do metody nie działasz na jej kopii - pracujesz na referencji do oryginalnego obiektu, możesz zmieniać przez to stan tego obiektu, np.

public void addToArrayList(ArrayLst<Integer> ar) {
  ar.add(2);
}

Natomiast:

ar = new ArrayList<Integer>(3);
ar.add(2);

Nie zmieni listy z poza metody, ponieważ referencja teraz wskazuje na inny obiekt.

0

Nie da się przesłać jako argument oryginału, lecz zbiór leży w tym samym miejscu w pamięci więc operacje będą te same także na oryginale.
Po co ci to ?

0

W sensie oryginalnej referencji

0

Przy sortowaniu przez wstawianie, chciałbym pracować na oryginalnej liście zadeklarowanej poza metodą i obejmującą całą klasę, aby później móc wywołać ją spoza metody.

0

ale pracujesz na oryginalnej liście cały czas uruchom sobie taki kod:

 
Class Main(){
public static void main(String[] args){
List l = new ArrayList();
d(l);
l.forEach(System.out::println);
}

private static void d(List l){
l.add(5);
}
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1