集合框架-工具类_Arrays

Arrays:用于操作数组的工具类

 

将数组转换成字符串:

int[] arr = {3,5,6,9}

System.out.println(Arrays.toString(arr));//将数组转换成字符串

 

toString的经典实现。

    public static String myToString(int[] a){

        int iMax = a.length - 1;

        if (iMax == -1)

                return "[]";



        StringBuilder b = new StringBuilder();

        b.append('[');

        for (int i = 0;  ; i++) {//中间省略条件判断,提高了效率。

            b.append(a[i]);

        if (i == iMax)

            return b.append(']').toString();

           b.append(", ");

        }

    }

 

asLIst()方法:将数组变成list集合

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

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

import java.util.Arrays;

import java.util.List;



public class ArraysDemo {

    public static void main(String[] args) {

        String[] arr = {"javascript","jianfeng","huangjian"};



        List<String> list = Arrays.asList(arr);

        

        System.out.println(list.contains("kk"));

        

        System.out.println(list);

        

        swap();

    }

    public static boolean myContains(String[] arr,String key){

        for (int x = 0;x<arr.length ;x++ ){

            if(arr[x].equals(key))

                return  true;

        }

        return false;

    }



}

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

import java.util.Arrays;

import java.util.List;



public class ArraysDemo {

    public static void main(String[] args) {

        swap();

    }

    public static void swap(){

        Integer[] num = {2,4,5,5};

        List<Integer> list = Arrays.asList(num);

        

        System.out.println(list);

    }

}

 

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

import java.util.Arrays;

import java.util.List;



public class ArraysDemo {

    public static void main(String[] args) {

        swap();

    }

    public static void swap(){

        int[] num = {3,4,5,7};



        List<int[]> list = Arrays.asList(num);



        System.out.println(list);//打印的结果是这个数组的哈希值

    }

}

 

 

 

 

toArray()方法:集合转成数组

使用的就是Collection接口中的toArray方法。

将集合变成数组的原因:为了限定对元素的操作 不需要进行增删了(数组定义好之后不能在增删,只能改变某个角标值而已或者查询某个角标)

指定类型的数组到底要定义多长:

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

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

所以创建一个刚刚好的数组最优 如:String[] arr = al.toArray(new String[al.size()]);

import java.util.ArrayList;

import java.util.Arrays;



public class CollectionToArray {

    public static void main(String[] args) {

        ArrayList<String> al = new ArrayList<String>();



        al.add("abc2");

        al.add("abc3");

        al.add("abc1");

        

        String[] arr = al.toArray(new String[5]);



        System.out.println(Arrays.toString(arr));//因为是数组,要获取元素就要遍历数组,所以将其变成变成字符串打印比较方便

    }

}

你可能感兴趣的:(Arrays)