Java中集合框架工具类——Arrays(传智播客毕老师视频讲解)

来源:互联网 发布:威纳数据注册码 编辑:程序博客网 时间:2024/06/01 21:13

一、Arrays中的方法

1、toString():将数组变为字符串

原来的方法:建立StringBilder容器,将数组中的元素添加至该容器中,形成字符串!

现在的方法:直接调用Arrays中的toString方法,将数组变为字符串:

如代码:

int[] arr={2 ,3, 4};System.out.println(arr);System.out.println(arr[0]);System.out.println(Arrays.toString(arr));
结果为:


2、asList():将数组变为List集合

把数组变成list集合有什么好处?
可以使用集合的思想和方法来操作数组中的元素。

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

:contains。
    get
    indexOf()
    subList();
如果增删。那么会反生UnsupportedOperationException,

String[] arr3={"abc","def","ghi"};List<String> L4=Arrays.asList(arr3);System.out.println(L4);
结果为:


注意2:如果数组中的元素都是对象。那么变成集合时,数组中的元素就直接转成集合中的元素。

如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在。

如代码:

int[] arr={2 ,3, 4};List L1=Arrays.asList(arr);System.out.println(L1);List<int []> L2=Arrays.asList(arr);System.out.println(L2);Integer[] arr2={2,3,4};List<Integer> L3=Arrays.asList(arr2);System.out.println(L3);
结果为:


即在int[] 型数组中,转为List集合后,因为int为基本数据类型,所以将该数组作为集合元素传递进来,即只传了一个元素,即int[]元素。

但是Integer[]型数组中,其数组中的元素均为对象,所以变成集合时,数据中的元素直接转成集合中的元素,即Integer类型。

二、Collections中的toArray():将集合转为数组

1、指定类型的数组到底要定义多长呢?
当指定类型的数组长度小于了集合的size,那么该方法内部会创建一个新的数组。长度为集合的size。
当指定类型的数组长度大于了集合的size,就不会新创建了数组。而是使用传递进来的数组。
所以创建一个刚刚好的数组最优。

2、为什么要将集合变数组?
为了限定对元素的操作。不需要进行增删了。


String[] arr3={"abc","def","ghi"};List<String> L4=Arrays.asList(arr3);       //数组转集合System.out.println(L4);//集合转数组String[] arr4=L4.toArray(new String[0]);   //所开辟空间不足System.out.println(Arrays.toString(arr4));String[] arr5=L4.toArray(new String[5]);   //会开辟额外的空间System.out.println(Arrays.toString(arr5));String[] arr6=L4.toArray(new String[L4.size()]);//最合适的做法System.out.println(Arrays.toString(arr6));
结果如下:



0 0