2012-05-10 58 views
111

thể trùng lặp:
Converting array to list in JavaChuyển đổi chuỗi mảng ArrayList

Tôi muốn chuyển đổi String mảng để ArrayList. Ví dụ: Chuỗi mảng giống như:

String[] words = new String[]{"ace","boom","crew","dog","eon"}; 

Làm thế nào để chuyển đổi mảng chuỗi này thành ArrayList?

+19

+1; bây giờ nó là liên kết thứ hai trên google. –

+1

ArrayList a = new ArrayList <> (Arrays.asList (từ)); –

+0

Bạn có thể làm điều đó theo 3 cách cơ bản. Sử dụng Collections.addAll, Arrays.asList và suối trong Java 8 - Reference - http://www.codingeek.com/java/how-to-convert-array-to-list-in-java/ –

Trả lời

205

Sử dụng mã này cho rằng,

import java.util.Arrays; 
import java.util.List; 
import java.util.ArrayList; 

public class StringArrayTest { 

    public static void main(String[] args) { 
     String[] words = {"ace", "boom", "crew", "dog", "eon"}; 

     List<String> wordList = Arrays.asList(words); 

     for (String e : wordList) { 
     System.out.println(e); 
     } 
    } 
} 
+11

Nói tóm lại tất cả các bạn cần là dòng 'List wordList = Arrays.asList (words); '. Điều này có đúng không? – Keale

+0

@Keale Nếu 'từ' là một chuỗi các chuỗi, thì, có. –

+8

Hãy coi chừng: Arrays.asList (...) tạo ra một AbstractList, không phải là một danh sách thực. Vì vậy, bạn có thể làm những thứ như wordList.sort ((a, b) -> a.length() - b.length()), nhưng bạn không thể làm wordList.remove (0), hoặc thêm vào nó. Điều này sẽ ném UnsupportedOperationException. –

20
String[] words= new String[]{"ace","boom","crew","dog","eon"}; 
List<String> wordList = Arrays.asList(words); 
+5

Kết quả ở đây là một 'Danh sách', nhưng không phải là một' ArrayList'. –

+4

@MarkoTopolnik bạn là đúng, điều này cần phải được bao bọc nên Danh sách Wordlist = new ArrayList (Arrays.asList (từ)); – Scorpion

127
new ArrayList(Arrays.asList(new String[]{"abc", "def"})); 
+2

tôi nghĩ rằng giải pháp này tốt hơn vì 'Arrays.asList' trả về một' java.util.Arrays.ArrayList.ArrayList (T []) 'vì vậy nếu bạn cố gắng' thêm' một cái gì đó bạn sẽ nhận được một 'java.lang.UnsupportedOperationException' –

+1

Nếu bạn có số lượng giới hạn các elemen trong mảng, nó có thể được viết là new ArrayList (Arrays.asList ("abc", "def")); –

+0

Để tránh cảnh báo IDE, 'new ArrayList <> (...)' làm việc cho tôi trái ngược với 'new ArrayList (...)' (lưu ý '<>'). –

9

trong hầu hết các trường hợp, các List<String> nên là đủ. Không cần phải tạo ra một ArrayList

import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.List; 

...

String[] words={"ace","boom","crew","dog","eon"}; 
List<String> l = Arrays.<String>asList(words); 

// if List<String> isnt specific enough: 
ArrayList<String> al = new ArrayList<String>(l); 
28

Sử dụng Collections#addAll()

String[] words = {"ace","boom","crew","dog","eon"}; 
List<String> arrayList = new ArrayList<>(); 
Collections.addAll(arrayList, words); 
+5

Tôi thích giải pháp này. Nó là ngắn gọn và sạch sẽ. –

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