将Set <String>转换为List <String>的最简洁的方法

我目前正在这样做:

Set<String> setOfTopicAuthors = .... List<String> list = Arrays.asList( setOfTopicAuthors.toArray( new String[0] ) ); 

你能打败吗?

 List<String> list = new ArrayList<String>(listOfTopicAuthors); 
 List<String> l = new ArrayList<String>(listOfTopicAuthors); 

可能是晚了一点,但是我们可以在Java 8中使用以下一个class轮:

 List<String> list = set.stream().collect(Collectors.toList()); 

这是一个小例子:

 public static void main(String[] args) { Set<String> set = new TreeSet<>(); set.add("A"); set.add("B"); set.add("C"); List<String> list = set.stream().collect(Collectors.toList()); } 

试试这个设置 :

 Set<String> listOfTopicAuthors = ..... List<String> setList = new ArrayList<String>(listOfTopicAuthors); 

试试这个地图 :

 Map<String, String> listOfTopicAuthors = ..... // List of values: List<String> mapValueList = new ArrayList<String>(listOfTopicAuthors.values()); // List of keys: List<String> mapKeyList = new ArrayList<String>(listOfTopicAuthors.KeySet()); 

如果您正在使用Guava,则可以从Lists类静态导入newArrayList方法:

 List<String> l = newArrayList(setOfAuthors); 

不知道你在做什么,只是通过你的代码的上下文,但…

为什么要使listOfTopicAuthorsvariables呢?

 List<String> list = Arrays.asList((....).toArray( new String[0] ) ); 

但是“….”代表你的套牌发挥作用,无论是新的还是来自另一个地方。