2010-09-19 47 views

Trả lời

37

Bạn có thể sử dụng Arrays.asList():

Type[] anArray = ... 
ArrayList<Type> aList = new ArrayList<Type>(Arrays.asList(anArray)); 

hoặc cách khác, Collections.addAll():

ArrayList<Type> aList = new ArrayList<Type>(); 
Collections.addAll(theList, anArray); 

Note rằng bạn không phải về mặt kỹ thuật gán một mảng vào một List (tốt, bạn không thể làm điều đó), nhưng tôi nghĩ đây là kết quả cuối cùng mà bạn đang tìm kiếm.

+0

Câu trả lời này là tốt hơn so với của tôi! –

+0

Your ' 'bị đặt không đúng chỗ. – missingfaktor

+0

@Missing Cảm ơn, đã sửa – NullUserException

6

Lớp Arrays chứa một phương pháp asList mà bạn có thể sử dụng như sau:

String[] words = ...; 
List<String> wordList = Arrays.asList(words); 
+2

này trả về một danh sách cố định kích thước của chuỗi gói gọn bởi một số loại tin mà thực hiện Danh mục giao diện . @ NullUserException của câu trả lời là tốt nhất nếu bạn cần một thể hiện của java.util.ArrayList đó là mutable. –

+0

Richard, chỉ muốn biết rằng tại sao danh sách trên trở thành kích thước cố định? Tôi không thể thêm một phần tử khác vào cùng một danh sách trong dòng tiếp theo .. như wordList.add (anotherStringElement); – peakit

+0

Đó là hành vi được xác định của phương pháp asList. Vì @NullUserException chỉ ra bạn nên chuyển đổi thành một ArrayList [ArrayList aList = new ArrayList (Arrays.asList (words)] để có được một ArrayList mà bạn có thể thêm các mục khác vào. –

1

Nếu bạn đang nhập hoặc bạn có một mảng (loại chuỗi) trong mã của bạn và bạn phải chuyển đổi nó thành arraylist (chuỗi offcourse) thì sử dụng các bộ sưu tập là tốt hơn. như thế này:

String array1[] = getIntent().getExtras().getStringArray("key1"); or 
String array1[] = ... 
then 

List<String> allEds = new ArrayList<String>(); 
Collections.addAll(allEds, array1); 
Các vấn đề liên quan