以下是Arrays工具类常用的一些方法:
1、Arrays.sort(Object[] array) 对数组元素进行排序

2、Arrays.asList(T…data) 将数组转换为集合,接收一个可变参数

3、Arrays.toString(Object[] array) 返回数组元素的字符串形式

4、Arrays.deepToString(Object[] array) 返回多维数组元素的字符串形式

5、Arrays.binarySearch(Object[] array, Object key) 使用二分法查找 “有序数组” 内指定元素的索引值

6、Arrays.copyOf(T[] original,int newLength) 拷贝数组,下标从0开始,如果新数组长度超过原数组长度,会用null进行填充

7、Arrays.copyOfRange(T[] original,int from,int to) 拷贝数组,指定起始位置和结束位置,如果新数组长度超过原数组长度,会用null进行填充

8、Arrays.fill(Object[] array,Object obj) 用指定的元素填充整个数组,替换掉原来的元素

9、Arrays.fill(Object[] array,int fromIndex,int toIndex,Object obj)

package Test;

import java.util.Arrays;
import java.util.List;
public class ArraysTest {
    public static void main(String[] args) {

        int[]  arr1 = {23,4,78,9,36,20};
        //测试Arrays.sort(Object[] array)   对数组元素进行排序
        Arrays.sort(arr1);


        //测试Arrays.toString(Object[] array)  返回数组元素的字符串形式
        System.out.println(Arrays.toString(arr1));


        //测试Arrays.asList(T...data)      将数组转换为集合,接收一个可变参数
        /*
          Arrays.asList(T...data)      将数组转换为集合,接收一个可变参数
          该方法返回的是Arrays内部静态类ArrayList,而不是我们平常使用的集合ArrayList
          该静态类ArrayList没有覆盖父类的add、remove方法,如果直接调用会报异常:
          java.lang.UnsupportedOperationException
         */
        String[] arr2 = {"abc","def","rgh","lef","pyth"};
        List<String> list = Arrays.asList(arr2);
        //list.add("gbn");//java.lang.UnsupportedOperationException
        for (String ele: list ) {
            System.out.println(ele);
        }
        /*
          如果将基本类型的数组作为参数传入,Arrays.asList(T...data)会把整个数组
          当作转换后的List的第一个元素
         */
        int[] arr3 = {345,6,3,2,1};
        List<int[]> list1 = Arrays.asList(arr3);
        System.out.println(list1.size());//长度为:1

        //Arrays.deepToString(Object[] array)  返回多维数组元素的字符串形式
        int[][] arr4 = {{1,2,3},{4,5,6},{7,8,9}};
        System.out.println(Arrays.deepToString(arr4));//[[1, 2, 3], [4, 5, 6], [7, 8, 9]]


        //Arrays.binarySearch(Object[] array, Object key)    使用二分法查找 "有序数组" 内指定元素的索引值
        int[] arr5 = {78,65,2,3,89,12,45};
        Arrays.sort(arr5);
        int index = Arrays.binarySearch(arr5,3);
        System.out.println(index);// 1


        //Arrays.copyOf(T[] original,int newLength)
        // 拷贝数组,下标从0开始,如果新数组长度超过原数组长度,会用null进行填充
        String[] arr6 = {"北京","上海","杭州","成都","深圳","西安","南京"};
        String[] arr6_copy = Arrays.copyOf(arr6,4);
        System.out.println(Arrays.toString(arr6_copy));//[北京, 上海, 杭州, 成都]


        //Arrays.copyOfRange(T[] original,int from,int to)
        // 拷贝数组,指定起始位置和结束位置,如果新数组长度超过原数组长度,会用null进行填充
        String[] arr6_copy2 = Arrays.copyOfRange(arr6,2,4);
        System.out.println(Arrays.toString(arr6_copy2));//[杭州, 成都]

        //Arrays.fill(Object[] array,Object obj)   用指定的元素填充整个数组,替换掉原来的元素
        int[] arr7 = {2,3,4,5,6,7,8};
        Arrays.fill(arr7,1);
        System.out.println(Arrays.toString(arr7));//[1, 1, 1, 1, 1, 1, 1]

        //Arrays.fill(Object[] array,int fromIndex,int toIndex,Object obj)
        //用指定的元素从起始位置到结束位置(左闭右开)填充数组,替换掉数组中原来的元素
        //超出数组的长度会报异常:ava.lang.ArrayIndexOutOfBoundsException
        String[] arr8 = {"北京","上海","杭州","成都","深圳","西安","南京"};
        Arrays.fill(arr8,3,5,"青岛");//[北京, 上海, 杭州, 青岛, 青岛, 西安, 南京]
        //Arrays.fill(arr8,3,8,"青岛");//ava.lang.ArrayIndexOutOfBoundsException
        System.out.println(Arrays.toString(arr8));
    }
}


版权声明:本文为weixin_45717072原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_45717072/article/details/115877134