Skip to content

Java

Arrays

Arrays是一个工具类

方法名作用
static String toString(Object[] a)数组转字符串
static void sort(Object[] a)数组排序
static Object[] copyOf(Object[] original, int newLength)数组拷贝, 返回新数组
copyOfRange(Object[] original, int from, int to)数组拷贝
fill(Object[] a, Object val)数组填充
binarySearch(Object[] a, Object key)二分查找, 返回索引
asList(Object[] a)数组转List
sort(Object[] a, Comparator<? super Object> c)数组排序
java
import java.util.Arrays;

public class Demo1 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};

        String str = Arrays.toString(arr);
        System.out.println(str);// [1, 2, 3, 4, 5]
        int[] arr2 = {3, 1, 7, 6, 9, 0, 3};
        Arrays.sort(arr2);
        System.out.println(Arrays.toString(arr2));// [0, 1, 3, 3, 6, 7, 9]

        int[] arr3 = {3, 1, 7, 6, 9, 0, 3};
        //返回新数组
        int[] newArr = Arrays.copyOf(arr3, 5);
        System.out.println(Arrays.toString(newArr));// [3, 1, 7, 6, 9]
        //binarySearch: 二分查找元素
        //细节1: 查找的数组必须是有序的, 并且还是升序的
        //细节2: 如果查找的元素是存在的, 则返回真实的索引
        // 如果查找的元素不存在, 返回 (-插入点 - 1) --- 插入点就是该元素应该在的位置, 例如: 10应该在arr4数组的最后一个位置也就是5, 然后计算(-5 - 1) = -6
        //解释为什么要-1? --- 如果此时查找的数字是0, 那么返回值是(-插入点), 就会出现问题
        //如果查找的元素是0, 而0而不存在于数组中, 如果返回(-插入点)也就是-0, 那么就会造成误解, 以为查找的索引位置在0的值, 而实际上并没有
        int[] arr4 = {1, 2, 3, 4, 5};
        int index1 = Arrays.binarySearch(arr4, 3);
        System.out.println(index1);
        int index2 = Arrays.binarySearch(arr4, 10);// -6
        System.out.println(index2);
    }
}

Released under the MIT License.