将String数组转换为ArrayList

use*_*570 157 java

可能重复:
在Java中将数组转换为列表

我想将String数组转换为ArrayList.例如String数组就像:

String[] words = new String[]{"ace","boom","crew","dog","eon"};
Run Code Online (Sandbox Code Playgroud)

如何将这个String数组转换为ArrayList?

Lal*_*iya 269

使用此代码,

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);  
      }  
   }  
}
Run Code Online (Sandbox Code Playgroud)

  • 注意:Arrays.asList(...)创建一个AbstractList,而不是一个真实的列表.所以你可以做像wordList.sort((a,b) - > a.length() - b.length())这样的东西,但是你不能做wordList.remove(0),或者添加它.这将抛出UnsupportedOperationException. (18认同)
  • 总之,你需要的是行`List <String> wordList = Arrays.asList(words); `.它是否正确? (12认同)
  • 此代码创建一个List,但它不是ArrayList.所以这是一个错误的答案.你不能删除该列表中的元素 - >将抛出异常. (8认同)

Mat*_*ten 162

new ArrayList( Arrays.asList( new String[]{"abc", "def"} ) );
Run Code Online (Sandbox Code Playgroud)

  • 我认为这个解决方案更好,因为`Arrays.asList`返回一个`java.util.Arrays.ArrayList.ArrayList <T>(T [])`所以如果你试着`添加'什么你会得到一个`java .lang.UnsupportedOperationException` (4认同)
  • 为了避免 IDE 警告,“new ArrayList&lt;&gt;(...)”对我有用,而不是“new ArrayList(...)”(注意“&lt;&gt;”)。 (2认同)
  • 对我来说最好的答案.使用`List <String> wordList = Arrays.asList(words);`,执行`wordList instanceof ArrayList <String>`将返回false. (2认同)

isv*_*all 41

使用集合#addAll()

String[] words = {"ace","boom","crew","dog","eon"};
List<String> arrayList = new ArrayList<>(); 
Collections.addAll(arrayList, words); 
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢这个解决方案.它简洁干净. (5认同)

Sco*_*ion 25

String[] words= new String[]{"ace","boom","crew","dog","eon"};
List<String> wordList = Arrays.asList(words);
Run Code Online (Sandbox Code Playgroud)

  • 这里的结果是`List`,但不是`ArrayList`. (7认同)
  • @MarkoTopolnik你是对的,这需要被包装,所以List <String> wordList = new ArrayList <String>(Arrays.asList(words)); (4认同)

hel*_*elt 11

在大多数情况下List<String>应该足够了.无需创建ArrayList

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
Run Code Online (Sandbox Code Playgroud)

...

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);
Run Code Online (Sandbox Code Playgroud)