2013-06-15 52 views
11

Tôi có một danh sách mảng A của kiểu Integer. Tôi đã tạo nó như:Vượt qua Arraylist làm đối số cho hàm

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

Bây giờ, tôi muốn chuyển nó làm đối số cho hàm AnalyseArray().

Tôi làm cách nào để đạt được điều này?

Trả lời

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

Tại sao bạn chọn giới hạn các phương thức hữu ích với một ArrayList thay vì Danh sách tổng quát hơn? – Hiro2k

+2

Phương thức đọc AnalyseArray, vì vậy nó sẽ tạo ra một thứ gì đó mà nội bộ sử dụng một mảng. Có lẽ những gì nó làm bên trong phương thức này là nhạy cảm với O của phương thức get(), vì vậy việc truyền một LinkedList sẽ là xấu. –

2

Xác định nó như

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

Câu trả lời đã được đăng tải nhưng lưu ý rằng điều này sẽ vượt qua ArrayList bằng cách tham khảo. Vì vậy, nếu bạn thực hiện bất kỳ thay đổi nào đối với danh sách trong hàm, nó cũng sẽ bị ảnh hưởng đến danh sách gốc.

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

gọi nó như thế này:

x=AnalyseArray(list); 

hoặc vượt qua một bản sao của ArrayList:

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

chỉ vì lợi ích của đầy đủ ... viết câu trả lời quá ...... – pinkpanther

0

Nó phụ thuộc vào cách thức và nơi bạn tuyên bố array list của bạn. Nếu nó là một biến cá thể trong cùng một lớp như phương thức AnalyseArray() của bạn, bạn không phải truyền nó theo. Phương thức này sẽ biết danh sách và bạn có thể chỉ cần sử dụng A trong bất kỳ mục đích nào bạn cần.

Nếu họ không biết nhau, ví dụ: beeing một biến địa phương hoặc công bố trong một lớp học khác nhau, xác định rằng AnalyseArray của bạn() phương pháp cần một tham số ArrayList

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

và sau đó làm việc với theList bên trong phương thức đó. Nhưng đừng quên thực sự truyền nó khi gọi phương thức. AnalyseArray(A);

PS: Một số thông tin hữu ích có thể là Variablesparameters.

Các vấn đề liên quan