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
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);
}
}