Array -> List
String[] arr = new String[]{"a", "b", "c", "d", "e"};
List<String> list = Arrays.asList(arr); // [a, b, c, d, e]
List -> Array
List<String> list = Lists.newArrayList("a", "b", "c", "d", "e");
String[] arr = list.toArray(new String[list.size()]); // [a, b, c, d, e]
Array -> Set
需通过List中间转一下:
String[] arr = new String[]{"a", "b", "c", "d", "e"};
Set<String> set = new HashSet<>(Arrays.asList(arr)); // [a, b, c, d, e]
Set -> Array
Set<String> set = Sets.newHashSet("a", "b", "c", "d", "e");
String[] arr = set.toArray(new String[set.size()]); // [a, b, c, d, e]
List <-> Set
List与Set都实现了Collection接口,所以都实现了Collection.addAll()方法。那么它们之间的互相转化可以使用addAll()方法,或者直接在构造方法中传入。
// List -> Set
List<String> list = Lists.newArrayList("a", "b", "c", "d", "e");
Set<String> set1 = new HashSet<>(list); // [a, b, c, d, e]
// 或者
Set<String> set2 = new HashSet<>();
set2.addAll(list); // [a, b, c, d, e]
// Set -> List
Set<String> set = Sets.newHashSet("a", "b", "c", "d", "e");
ArrayList<String> list1 = new ArrayList<>(set); // [a, b, c, d, e]
// 或者
List<String> list2 = new ArrayList<>();
list2.addAll(set); // [a, b, c, d, e]