数组和集合的转化

数组和集合的转化

把数组变成list集合有什么好处?

可以使用集合的思想和方法来操作数组中的元素

举例1:将字符串数组转换成集合
String[] arr = {“a”,”b”,”c”};
List list = Arrays.asList(arr);
//list.add(“QQ”);//禁止!!!!

*注意:将数组变成集合,不可以使用集合的增删方法!
因为:数组的长度是固定的!!!

举例2:将整型数组转换成集合
int[] nums = {1,2,3};
List<int[]> li = Arrays.asList(nums);
syso(li);

*注意:这里的泛型必须是int[],而不是integer,因为
如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素
如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的一个元素存在。

集合变数组

Collection接口中的toArray方法。

举例1:
ArrayList a = new ArrayList();
a.add(“qq”);
a.add(“ww”);
a.add(“ee”);
String[] arr = a.toArray(new String[a.size()]);

*1.指定类型的数组应该定义为多长呢?
当指定类型的数组长度小于了集合的size,那么该方法内部会创建一个新的数组,长度为size。
当指定类型的数组长度大于了集合的size,就不会创建了,而是使用传递进来的数组。
所以:
应该使用size表示长度最合适!

*2.为什么要将集合变数组?
为了限定对元素的操作。
比如 不希望该集合中的元素被增加删除,因为数组长度固定。