2012-05-10 26 views
111

Powiel możliwe:
Converting array to list in JavaKonwersja tablicy String do ArrayList

chcę przekonwertować String tablicę ArrayList. Na przykład tablica String jest jak:

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

Jak przekonwertować tej tablicy String do ArrayList?

+19

+1; to teraz drugi link w google. –

+1

ArrayList a = nowa ArrayList <> (Arrays.asList (words)); –

+0

Możesz to zrobić na 3 podstawowe sposoby. Korzystanie z Collections.addAll, Arrays.asList i strumieni w języku Java 8 - Odsyłacz - http://www.codingeek.com/java/how-to-convert-array-to-list-in-java/ –

Odpowiedz

205

użyć tego kodu do tego,

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

Podsumowując wszystko czego potrzebujesz jest linią 'List wordList = Arrays.asList (words); '. Czy to jest poprawne? – Keale

+0

@Keale Jeśli 'words' jest tablicą łańcuchów, to tak. –

+8

Uwaga: Arrays.asList (...) tworzy listę AbstractList, a nie prawdziwą listę. Możesz więc robić rzeczy takie jak wordList.sort ((a, b) -> a.length() - b.length()), ale nie możesz zrobić wordList.remove (0) lub dodać do niego. Spowoduje to zgłoszenie wyjątku UnsupportedOperationException. –

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

Rezultatem jest tutaj 'List', ale nie' ArrayList'. –

+4

@MarkoTopolnik masz rację, to musi być opakowane tak List wordList = new ArrayList (Arrays.asList (słowa)); – Scorpion

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

Myślę, że to rozwiązanie jest lepsze, ponieważ 'Arrays.asList' zwraca' java.util.Arrays.ArrayList.ArrayList (T []) ', więc jeśli spróbujesz' dodać' coś otrzymasz 'java.lang.UnsupportedOperationException' –

+1

Jeśli masz ograniczoną liczbę elemenetów w tablicy, to można to zapisać jako nowa ArrayList (Arrays.asList ("abc", "def")); –

+0

Aby uniknąć ostrzeżeń IDE, 'nowa ArrayList <> (...)' działała dla mnie w przeciwieństwie do 'nowej tablicy ArrayList (...)' (zwróć uwagę na '<>'). –

9

w większości przypadków List<String> powinno wystarczyć. Nie ma potrzeby, aby utworzyć 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

Korzystanie Collections#addAll()

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

Podoba mi się to rozwiązanie. Jest zwięzły i czysty. –