数组与List、Set这些集合类之间的转换。
对于字符串类型来说方法比较多,
数组转列表:
List list2 = Arrays.asList(array2);
ArrayList<String> list2 = new ArrayList<String>(Arrays.asList(array2)) ;
ArrayList< String> list2 = new ArrayList<String>();
Collections.addAll(list2, array2);
列表转数组:
String[] a = list2.toArray(new String[list2.size()]);
对于整型来说上面的方法就不太适用了,因为集合类的元素类型没有int只有Integer,无法与常用的int数组直接转换,这时就得借助stream,而且这对List和Set都适用。
数组转列表:
1.一步到位
List<Integer> list2 = Arrays.stream(array2).boxed().collect(Collectors.toList());
2.也可以采用下面的方式,先把int数组转成Integer数组,再转列表:
Integer[] integersArray2 = Arrays.stream(array2).boxed().toArray(Integer[]::new);
List<Integer> list2 = Arrays.asList(integersArray2);
列表转数组:
1.一步
int[] arr2 = list2.stream().mapToInt(Integer::valueOf).toArray();
2.也可以先转成Integer数组,再转成int数组
Integer[] integers2 = list2.toArray(new Integer[0]);
int[] arr2 = Arrays.stream(integers2).mapToInt(Integer::valueOf).toArray();
很明显这两种转换的第2个方法纯属脱xx放x行为。。