Mam listę tablic A typu Integer. Stworzyłem ją jako:Przekaż listę Arraylist jako argument funkcji
ArrayList<Integer> A = new ArrayList<Integer>();
Teraz chcę przekazać go jako argument funkcjonować AnalyseArray()
.
Jak mogę to osiągnąć?
Mam listę tablic A typu Integer. Stworzyłem ją jako:Przekaż listę Arraylist jako argument funkcji
ArrayList<Integer> A = new ArrayList<Integer>();
Teraz chcę przekazać go jako argument funkcjonować AnalyseArray()
.
Jak mogę to osiągnąć?
public void AnalyseArray(ArrayList<Integer> array) {
// Do something
}
...
ArrayList<Integer> A = new ArrayList<Integer>();
AnalyseArray(A);
zdefiniować go jako
<return type> AnalyzeArray(ArrayList<Integer> list) {
Odpowiedź jest już pisał jednak pamiętać, że to minie ArrayList przez odniesienie. Więc jeśli wprowadzisz jakiekolwiek zmiany na liście w funkcji, wpłynie to również na oryginalną listę.
<access-modfier> <returnType> AnalyseArray(ArrayList<Integer> list)
{
//analyse the list
//return value
}
nazwać to tak:
x=AnalyseArray(list);
lub przekazać kopię ArrayList:
x=AnalyseArray(list.clone());
tylko ze względu na kompletność ... napisz też odpowiedź ...... – pinkpanther
To zależy od tego jak i gdzie ogłosił swoją listę tablicy. Jeśli jest to instancja zmienna w tej samej klasie, co metoda AnalyseArray(), nie musisz jej przekazywać dalej. Metoda będzie znała listę i możesz po prostu użyć A w dowolnym celu.
Jeśli się nie znają, np. beeing zmiennej lokalnej lub zadeklarowana w innej klasy, określić, czy AnalyseArray() metoda wymaga parametr ArrayList
public void AnalyseArray(ArrayList<Integer> theList){}
a następnie pracować z thelist wewnątrz tej metody. Ale nie zapomnij go przekazać podczas wywoływania metody. AnalyseArray(A);
PS: Niektóre mogą być pomocne informacje dla Variables i parameters.
Dlaczego zdecydowałeś się ograniczyć przydatność metod do ArrayList zamiast do bardziej ogólnej listy? – Hiro2k
Metoda odczytuje AnalyseArray, więc od tego czasu wziąłby coś, co wewnętrznie używa tablicy. Być może to, co robi w metodzie, jest wrażliwe na metody O (get), więc przekazanie listy powiązań byłoby złe. –