集合框架(06)Arrays

 Arrays

Arrays:用于操作数组的工具类,里面都是静态方法

---数组变集合

1.asList:将数组变成List集合

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

注意:将数组变成集合,不可以使用集合的增删方法,因为数组的长度是固定的,如果发生了增删操作,那么会发成不支持操作异常(UnsupportedOperationException)

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

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

方法代码示例:

package Arrays;
import java.util.*;

public class ArraysDemo1 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int [] arr = {1,2,3};
        System.out.println(Arrays.toString(arr));
        System.out.println("-----------");
        //asList将数组变成集合
        String[] arr1 = {"a","cc","kkkk"};
        List<String> list = Arrays.asList(arr1);
        sop(list);
        System.out.println("-----------");
        
/*        如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素
        如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在*/
        int [] arr2 = {1,2,3};
        List list2 = Arrays.asList(arr2);
        sop(list2);
        System.out.println("-----------");
        Integer[] arr3 = {4,5,6};
        List list3 = Arrays.asList(arr3);
        sop(list3);

    }
    public static void sop(Object obj){
        System.out.println(obj+",");
    }

}

集合变数组:Collection接口中的toArray方法

  1. 指定类型的数组到底要定义多长那?

当指定类型的数组长度小于了集合的size,那么该方法内部会创建一个新的数组,长度为集合的size

当指定类型的数组长度大于了集合的size,就不会新创建数组,而是使用传递进来的数组

所以创建一个刚刚好的数组最优

  1. 为什么要将集合变为数组?

为了限定对元素的操作。不需要进行增删了

package Arrays;


import java.util.*;

public class CollectionToArrayDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ArrayList<String> list = new ArrayList<String>();
        list.add("abc1");
        list.add("abc2");
        list.add("abc3");
        
        String[] arr = list.toArray(new String[list.size()]);
        System.out.println(Arrays.toString(arr));
        

    }

}
原文地址:https://www.cnblogs.com/sunxiaoyan/p/8691318.html