Arrays类

常用方法

Arrays是操作数组的工具类

toString

import java.util.Arrays;

public class d1 {
    public static void main(String[] args) {
        //toString:将数组变成字符串
        int[] arr={1,2,3,4,5,6,7};
        System.out.println(Arrays.toString(arr));
    }
}

binarySearch

public class d2 {
    public static void main(String[] args) {
        //binarySearch:二分查找法查找元素
        int[] arr={1,2,3,4,5};
        //如果查找的元素存在,那返回的是真实的索引
        //查找的数组必须是升序的
        System.out.println(Arrays.binarySearch(arr, 2));//1
        System.out.println(Arrays.binarySearch(arr, 5));//4
        /*如果查找的元素不存在,那返回的是-插入点-1
        插入点:如果当前查找的元素存在,它在数组中的索引
        如6不存在于arr中,那它的插入点就是索引5,因为6如果存在,那它会在5的后面
        所以返回-5-1=-6
        至于-1,是防止如在{1,2,3}这种数组查找0,如果不-1,那么会返回0,不合理。
        */
        System.out.println(Arrays.binarySearch(arr, 6));//-6
    }
}

copyOf

import java.util.Arrays;

public class d3 {
    public static void main(String[] args) {
        int[] arr={1,2,3,4,5};
        //当新数组的长度小于老数组,会部分拷贝
        int[] new_arr1=Arrays.copyOf(arr,3);
        //当新数组的长度等于老数组,会全部拷贝
        int[] new_arr2=Arrays.copyOf(arr,5);
        //当新数组的长度大于老数组,会补上默认初始值
        int[] new_arr3=Arrays.copyOf(arr,7);
        System.out.println(Arrays.toString(new_arr1));//[1, 2, 3]
        System.out.println(Arrays.toString(new_arr2));//[1, 2, 3, 4, 5]
        System.out.println(Arrays.toString(new_arr3));//[1, 2, 3, 4, 5, 0, 0]
    }
}

copyOfRange

import java.util.Arrays;
public static void main(String[] args) {
        int[] arr={1,2,3,4,5};
        int[] new_arr4=Arrays.copyOfRange(arr,0,4);
        //copyOfRange包头不包尾,包含0索引不包含4索引
        System.out.println(Arrays.toString(new_arr4));//[1, 2, 3, 4]
}

fill

import java.util.Arrays;

public class d4 {
    public static void main(String[] args) {
        //fill:填充数组
        int[] arr={1,2,3,4,5};
        Arrays.fill(arr,1);
        System.out.println(Arrays.toString(arr));//[1, 1, 1, 1, 1]
    }
}

sort

import java.util.Arrays;

public class d5 {
    public static void main(String[] args) {
        int[] arr={5,6,3,1,4,2,8,10,7,9};
        Arrays.sort(arr);//默认排序是给基本类型升序的
        System.out.println(Arrays.toString(arr));
        //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    }
}
import java.util.Arrays;
import java.util.Comparator;

public class d6 {
    public static void main(String[] args) {
        //这种排序是针对引用数据类型的,如果要应用于基本数据类型
        //就要把基本数据类型变成其对应的包装类
        Integer[] arr={5,6,3,1,4,2,8,10,7,9};
        Arrays.sort(arr, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                //o1:无序序列中遍历得到的每一个元素
                //o2:有序序列中的元素
                //o1-o2:升序
                //o2-o1:降序
                return o2-o1;
            }
        });
        System.out.println(Arrays.toString(arr));//[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    }
}

equals

package Map;

import java.util.Arrays;

public class demo {
    public static void main(String[] args) {
        int[] arr1 = {1,2,3,4,5};
        int[] arr2 = {1,2,3,5,4};
        System.out.println(Arrays.equals(arr1, arr2));//false
        //数组的数据个数和对应索引的数据相同才true
        System.out.println(Arrays.equals(arr1,0,3,arr2,0,3));//比较前3个数据 true JDK8用不了
    }
}

asList

package Map;

import java.util.Arrays;
import java.util.List;

public class demo {
    public static void main(String[] args) {
        List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
        System.out.println(list);//[1, 2, 3, 4, 5]
    }
}

posted @ 2022-09-23 16:47  ben10044  阅读(16)  评论(0编辑  收藏  举报