Witam,
Od niedawna zacząłem pisać coś w Javie, mam już w jakimś stopniu ogarnięte podstawy C++.
Problem polega na tym, że przekazuję ArrayListe z objektu jednej klasy do objektu drugiej klasy, w efekcie mam do niej dostep, mogę ją wyświetlić jednak jeżeli chcę zmienić wartość elementów (String) tej listy to po prostu nic się nie dzieje. Oto mój kod przedstawiający w jaki sposób ja to robię, proszę o wyjaśnienie jak powinno to wyglądać aby działało poprawnie :)
Main:
public class Main {
public static void main(String[] args) {
Class1 obj1 = new Class1();
Class2 obj2 = new Class2();
obj2.makeList();
obj1.makeList(obj2.getList());
obj1.editList();
obj1.showList();
}
}
Class1:
public class Class1 {
ArrayList<String> list2;
public void makeList(ArrayList<String> listX){
list2 = listX;
}
public void showList(){
for(String x : list2){
System.out.println(x);
}
}
public void editList(){
for(String x : list2){
x="edited";
}
}
}
Class2:
public class Class2 {
ArrayList<String> list;
public void makeList(){
list = new ArrayList<String>();
list.add("zero");
list.add("one");
list.add("two");
list.add("three");
}
public void showList(){
for(String x : list){
System.out.println(x);
}
}
public ArrayList<String> getList(){
return list;
}
}
W efekcie wyświetlona zostaje lista bez jakichkolwiek zmian.
//Edit
Chyba edytuje tylko zmienną pomocniczną String x, a nie elementy listy.....
Jak poprawnie edytowac elementy listy?