记录一下常见的数组转集合的5种方式,建议推荐使用stream流的方式,主打一个优雅。实际上使用stream流的话坑也少,减少不必要的bug。话不多说,直接上代码!
public class ArraysConvertList {
/**
* 初始化数组
*/
public Integer[] arr(){
return new Integer[]{1,2,3,4,5};
}
/**
* 1.Arrays.asList
* 缺点:1.转换后不能直接修改 2.不能使用基本类型作为实参
*/
public void asListConvertList1(){
List<Integer> list = Arrays.asList(arr());
System.out.println("1.Arrays.asList方式:" + list);
}
/**
* 2. Arrays.asList + new ArrayList
* 解决可以增加,删除元素问题
*/
public void asListConvertList2(){
List<Integer> list = new ArrayList<>(Arrays.asList(arr()));
System.out.println("1.Arrays.asList + new ArrayList方式:" + list);
}
/**
* 3. CollectionUtil.addAll
* 参数1: 新数组
* 参数2: 原数组
*/
public void asListConvertList3(){
List<Integer> list = new ArrayList<>(arr().length);
CollectionUtil.addAll(list,arr());
System.out.println("3.CollectionUtil.addAll方式:" + list);
}
/**
* 3.stream
*/
public void asListConvertList4(){
List<Integer> list = Arrays.stream(arr()).collect(Collectors.toList());
System.out.println("4.stream-collect方式:" + list);
}
/**
* 4.stream
* 基本类型数组转换成封装类集合
* boxed方法把基本类型转换成包装类
*/
public void asListConvertList5(){
int[] ints = {1, 2, 3, 4};
List<Integer> list = Arrays.stream(ints).boxed().collect(Collectors.toList());
System.out.println("5.stream-collect(基本类型转换包装类)方式:" + list);
}
/**
* 测试调用主函数
*/
public static void main(String[] args) {
ArraysConvertList arraysConvertList = new ArraysConvertList();
arraysConvertList.asListConvertList1();
arraysConvertList.asListConvertList2();
arraysConvertList.asListConvertList3();
arraysConvertList.asListConvertList4();
arraysConvertList.asListConvertList5();
}
}
日常记录代码,内核提升亿点。