数组转集合
在java中的数组有两种情况,一种是存放基本数据类型的数组,一种是存放对象类型的数组。
对于存放对象类型的数组,直接使用Arrays.asList方法即可
对于存放基本数据类型的,如果我们单纯使用Arrays.asList的方法去转换,只会得到对象类型为int[]的集合。这样子每一个元素都是一个基本数据类型数组的对象,而不是我们要存放的数据。
public static void main([]args){
int []a = new int[10];
for(int i=0;i<a.length;a++){
a[i]=i;
}
List<int[]> intList = Arrays.asList(a);
System.out.println(intList.toString());
//可以发现打印出来的是个对象
//----------------------------
//在项目中导入commons-lang3的jar包,利用其提供的ArrayUtils方法
//可以发现,就是将基本数据类型的元素转换成了包装类型的元素。每一个包装类型都是一个对象。
Integer []integer = ArrayUtils.toObject(a);
//即,现在是对象元素的数组。再使用Arrays.asList方法
List<Integer> integerList = Arrays.asList(integer);
System.out.println(integerList.toString());
//----------------------------
//当然也可以不导包,在jdk1.8的流式计算中,也提供了将基本数据类型转换成包装类型
List<Integer> collect = Arrays.stream(a).boxed().collect(Collectors.toList());
System.out.println(collect.toString());
}
集合转数组
集合的toArray方法提供了两种方式,一个是带参数的,一个是不带参数,使用不带参数的将转换为Object类型的。我们选择使用带参数的。
public static void main([] args){
List<Integer> list = new ArrayList<>();
list.put(1);
list.put(2);
list.put(3);
Integer integer[] = list.toArray(new Integer[list.size()]);
//你会发现,list.toArray方法提供了两种方式,选择使用有参的。
}