java工具類(lèi)之Arrays

參考資料1 : https://www.cnblogs.com/ECJTUACM-873284962/p/7363224.html

  • java.util.Arrays類(lèi)能方便地操作數(shù)組,它提供的所有方法都是靜態(tài)的。具有以下功能:
  • 給數(shù)組賦值:通過(guò)fill方法。
  • 對(duì)數(shù)組排序:通過(guò)sort方法,按升序。
  • 比較數(shù)組:通過(guò)equals方法比較數(shù)組中元素值是否相等。
  • 查找數(shù)組元素:通過(guò)binarySearch方法能對(duì)排序好的數(shù)組進(jìn)行二分查找法操作
package com.wpp.array;

import org.junit.Test;

import java.util.Arrays;
import java.util.Collections;
import java.util.Date;

import static org.junit.Assert.assertEquals;

/**
 * @author wpp25
 * @date 2019/10/20 10:38
 * @description:
 */
public class StudyArrays {

    /**
     * binarySerach方法
     */
    @Test
    public void binarySearch_1Test() {
        int index = Arrays.binarySearch(new int[]{1, 2, 3, 4, 5, 6, 7}, 6);

        assertEquals(5, index);

        index = Arrays.binarySearch(new int[]{1, 2, 3, 4, 5, 6, 7}, 3, 6, 6);
        assertEquals(5, index);

        assertEquals(7, new int[]{1, 2, 3, 4, 5, 6, 7}[6]);
    }

    @Test
    public void binarySearch_1_1Test() {
        int indes = Collections.binarySearch(Arrays.asList(1, 2, 3), 2);
        assertEquals(indes, 1);

    }

    /**
     * copyOf及copyOfRange方法
     * 復(fù)制
     */
    @Test
    public void copyOfTest() {
        String[] nameArr = {"Eric", "John", "Alan", "Liz"};
        String[] copyNameArr = Arrays.copyOf(nameArr, 3);
        String[] copyNameArrRange = Arrays.copyOfRange(nameArr, 2, nameArr.length);

        Arrays.stream(copyNameArr).forEach(System.out::println);
        System.out.println("-----------");
        Arrays.stream(copyNameArrRange).forEach(System.out::println);
        System.out.println(nameArr);
        System.out.println(copyNameArr);
    }

    /**
     * sort
     */
    @Test
    public void sortTest() {
        int[] names = {4, 3, 2, 1};
        //只排序前兩個(gè)
        //[John, Liz, Eric, Alan]
        Arrays.sort(names, 0, 2);
        Arrays.stream(names).forEach(System.out::println);
        //全部排序
        //[Alan, Eric, John, Liz]
        System.out.println("------------");
        Arrays.sort(names);
        Arrays.stream(names).forEach(System.out::println);

    }

    /**
     * public static <T> void sort(T[] a, Comparator<? super T> c) {
     *         if (LegacyMergeSort.userRequested)
     *             legacyMergeSort(a, c);
     *         else
     *             TimSort.sort(a, c);
     *     }
     *     TODO
     */
    @Test
    public void sort_extend_compartorTest() {
        Date[] dataArr = {};
    }

    /**
     *Arrays的toString方法可以方便我們打印出數(shù)組內(nèi)容
     */
    @Test
    public void toStringTest() {
       String[] names = {"liz","john","eric","alan"};
       Arrays.sort(names);
        System.out.println(Arrays.toString(names));// [alan, eric, john, liz]
    }

    /**
     * 如果需要打印二維數(shù)組的內(nèi)容:
     * int[][] stuGrades = { { 80, 81, 82 }, { 84, 85, 86 }, { 87, 88, 89 } };
     * 如果直接用
     *
     * System.out.println(Arrays.toString(stuGrades));
     * 那么得到的結(jié)果類(lèi)似于
     *      [[I@35ce36, [I@757aef, [I@d9f9c3]}
     * 這個(gè)時(shí)候得用 deepToString 方法才能得到正確的結(jié)果[[80, 81, 82], [84, 85, 86], [87, 88, 89]]
     */
    @Test
    public void  deepToStringTest () {
        int[][] stuGrades = { { 80, 81, 82 }, { 84, 85, 86 }, { 87, 88, 89 } };
        System.out.println(Arrays.deepToString(stuGrades));
    }

    @Test
    public void equalsTest() {
        String[] names1 = { "Eric", "John", "Alan", "Liz" };

        String[] names2 = { "Eric", "John", "Alan", "Liz" };

        System.out.println(Arrays.equals(names1, names2));
    }
    @Test
    public void deepEqualsTest() {
        int[][] stuGrades1 = { { 80, 81, 82 }, { 84, 85, 86 }, { 87, 88, 89 } };

        int[][] stuGrades2 = { { 80, 81, 82 }, { 84, 85, 86 }, { 87, 88, 89 } };

        System.out.println(Arrays.deepEquals(stuGrades1, stuGrades2));
    }

    @Test
    public void  fillTest() {
        int[] array1 = new int[8];
        Arrays.fill(array1, 1);
        //[1, 1, 1, 1, 1, 1, 1, 1]
        System.out.println(Arrays.toString(array1));

        Arrays.fill(array1,3,4,9);
        System.out.println(Arrays.toString(array1));
    }

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容