Java:如何将String 转换为List或Set

如何将String [](Array)转换为Collection,如ArrayList或HashSet?

Arrays.asList()将在这里做的伎俩。

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

要转换为Set,您可以按照以下操作

 Set<T> mySet = new HashSet<T>(Arrays.asList(words)); 

最简单的方法是:

 String[] myArray = ...; List<String> strs = Arrays.asList(myArray); 

使用方便的数组实用程序类。 请注意,你甚至可以做

 List<String> strs = Arrays.asList("a", "b", "c"); 

Collections.addAll提供最短的(单行)收据

 String[] array = {"foo", "bar", "baz"}; Set<String> set = new HashSet<>(); 

你可以做如下

 Collections.addAll(set, array); 
 java.util.Arrays.asList(new String[]{"a", "b"}) 

这是一个旧的代码,无论如何,尝试一下:

 import java.util.Arrays; import java.util.List; import java.util.ArrayList; public class StringArrayTest { public static void main(String[] args) { String[] words = {"word1", "word2", "word3", "word4", "word5"}; List<String> wordList = Arrays.asList(words); for (String e : wordList) { System.out.println(e); } } } 

如果你真的想使用一套:

 String[] strArray = {"foo", "foo", "bar"}; Set<String> mySet = new HashSet<String>(Arrays.asList(strArray)); System.out.println(mySet); 

输出:

 [foo, bar] 

最简单的方法是通过

 Arrays.asList(stringArray); 

虽然这不是严格的答案这个问题,我认为这是有用的。

数组和集合可以转换为Iterable,这可以避免执行硬转换的需要。

例如我写了这个连接列表/数组的东西成一个string与分隔符

 public static <T> String join(Iterable<T> collection, String delimiter) { Iterator<T> iterator = collection.iterator(); if (!iterator.hasNext()) return ""; StringBuilder builder = new StringBuilder(); T thisVal = iterator.next(); builder.append(thisVal == null? "": thisVal.toString()); while (iterator.hasNext()) { thisVal = iterator.next(); builder.append(delimiter); builder.append(thisVal == null? "": thisVal.toString()); } return builder.toString(); } 

使用迭代的手段,你可以提供一个ArrayList或类似以及使用它与String...参数,而不必转换。

 String[] w = {"a", "b", "c", "d", "e"}; List<String> wL = Arrays.asList(w);