2013-06-15 2 views
11

У меня есть arraylist A типа Integer. Я создал его как:Pass Arraylist как аргумент для функции

ArrayList<Integer> A = new ArrayList<Integer>(); 

Теперь я хочу, чтобы передать его в качестве аргумента, чтобы функционировать AnalyseArray().

Как я могу это достичь?

ответ

16
public void AnalyseArray(ArrayList<Integer> array) { 
    // Do something 
} 
... 
ArrayList<Integer> A = new ArrayList<Integer>(); 
AnalyseArray(A); 
+1

Почему вы решили ограничить полезность методов с помощью ArrayList вместо более общего списка? – Hiro2k

+2

Метод читает AnalyseArray, поэтому он сделает так, чтобы взять что-то, что внутренне использует массив. Возможно, то, что он делает внутри метода, чувствительно к O методов get(), поэтому передача LinkedList будет плохой. –

2

Определить как

<return type> AnalyzeArray(ArrayList<Integer> list) { 
5

Ответ уже писал, но обратите внимание, что это будет проходить ArrayList по ссылке. Поэтому, если вы внесете какие-либо изменения в список в функции, это также повлияет на исходный список.

<access-modfier> <returnType> AnalyseArray(ArrayList<Integer> list) 
{ 
//analyse the list 
//return value 
} 

вызов это так:

x=AnalyseArray(list); 

или передать копию ArrayList:

x=AnalyseArray(list.clone()); 
+1

только ради полноты ... напишите ответ тоже ...... – pinkpanther

0

Это зависит от того, как и где вы объявили список массива. Если это переменная экземпляра в том же классе, что и ваш метод AnalyseArray(), вам не нужно передавать его. Этот метод будет знать список, и вы можете просто использовать A в любых целях, которые вам нужны.

Если они не знают друг друга, например, неоспоримым локальную переменную или объявленную в другом классе, определить, что ваш AnalyseArray() метод необходим параметр ArrayList

public void AnalyseArray(ArrayList<Integer> theList){} 

, а затем работать с theList внутри этого метода. Но не забудьте на самом деле передать его при вызове метода. AnalyseArray(A);

PS: Некоторые могут быть полезны Информация для Variables и parameters.

Смежные вопросы