常用类库-java.util.Arrays

常用类库-java.util.Arrays

简介

类名:public class Arrays extends Object

该类包含了一些关于数组操作的各种方法,如排序搜索等。其所有方法均是静态方法,可通过类名直接调用。

常用方法:

binarySearch

方法名:

public static int binarySearch(byte[] a, byte key)

public static int binarySearch(char[] a, char key)

public static int binarySearch(double[] a, double key)

public static int binarySearch(float[] a, float key)

public static int binarySearch(int[] a, int key)

public static int binarySearch(long[] a, long key)

public static int binarySearch(short[] a, short key)

public static int binarySearch(Object[] a, Object key)

public static int binarySearch(byte[] a, int fromIndex, int toIndex, byte key)

public static int binarySearch(char[] a, int fromIndex, int toIndex, char key)

public static int binarySearch(double[] a, int fromIndex, int toIndex, double key)

public static int binarySearch(float[] a, int fromIndex, int toIndex, float key)

public static int binarySearch(int[] a, int fromIndex, int toIndex, int key)

public static int binarySearch(long[] a, int fromIndex, int toIndex, long key)

public static int binarySearch(short[] a, int fromIndex, int toIndex, short key)

public static int binarySearch(Object[] a, int fromIndex, int toIndex, Object key)

作用:

第一部分的八个方法是从指定的数组中使用二分查找搜索指定的值,找到了则返回该值在数组中的下标,没找到则返回一个负数。

第二部分的八个方法是在指定数组的从 fromIndex(包含)开始到 toIndex(不包含)结束的范围内使用二分查找搜索指定的值,找到了则返回该值在数组中的下标,没找到则返回一个负数。

使用案例:

package Arrays;

import java.util.Arrays;

/**
 *@ClassName: BinarySearchTest
 *@Description: Arrays中binarySearch的使用
 *
 */
public class BinarySearchTest {
    public static void main(String[] args) {
        int[] nums = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        System.out.print("数组中查找4:");
        System.out.println(Arrays.binarySearch(nums, 4));
        System.out.print("数组中查找0:");
        System.out.println(Arrays.binarySearch(nums, 0));
        System.out.print("数组下标1到5范围内查找5:");
        System.out.println(Arrays.binarySearch(nums, 1, 5, 5));
        System.out.print("数组下标1到5范围内查找8:");
        System.out.println(Arrays.binarySearch(nums, 1, 5, 8));
    }
}

在这里插入图片描述

copyOf

方法名:

public static boolean[] copyOf(boolean[] original, int newLength)

public static byte[] copyOf(byte[] original, int newLength)

public static char[] copyOf(char[] original, int newLength)

public static double[] copyOf(double[] original, int newLength)

public static float[] copyOf(float[] original, int newLength)

public static int[] copyOf(int[] original, int newLength)

public static long[] copyOf(long[] original, int newLength)

public static short[] copyOf(short[] original, int newLength)

public static boolean[] copyOfRange(boolean[] original, int from, int to)

public static byte[] copyOfRange(byte[] original, int from, int to)

public static char[] copyOfRange(char[] original, int from, int to)

public static double[] copyOfRange(double[] original, int from, int to)

public static float[] copyOfRange(float[] original, int from, int to)

public static int[] copyOfRange(int[] original, int from, int to)

public static long[] copyOfRange(long[] original, int from, int to)

public static short[] copyOfRange(short[] original, int from, int to)

作用:

第一部分的八个方法是复制原数组 original 到一个长度为 newLength 的新数组中,视情况在新数组中对原数据进行截取或零填充。

第二部分的八个方法是将原数组 original 从 from(包含)到 to (不包含)范围内的数据复制到新数组中并返回新数组。

使用案例:

package Arrays;

import java.util.Arrays;

/**
 *@ClassName: CopyOfTest
 *@Description: Arrays中copyOf的使用
 *
 */
public class CopyOfTest {
    public static void main(String[] args) {
        int[] nums = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        // 新数组长度大于原数组则进行零填充
        int[] newnums1 = Arrays.copyOf(nums, 15);
        // 新数组长度小于原数组则进行截取
        int[] newnums2 = Arrays.copyOf(nums, 6);
        System.out.print("原数组:");
        System.out.println(Arrays.toString(nums));
        System.out.print("新数组,长度15:");
        System.out.println(Arrays.toString(newnums1));
        System.out.print("新数组,长度6:");
        System.out.println(Arrays.toString(newnums2));
        // 新数组包括下标2,不包括下标5
        int[] newnums3 = Arrays.copyOfRange(nums, 2, 5);
        System.out.print("新数组范围2到5:");
        System.out.println(Arrays.toString(newnums3));
    }
}

在这里插入图片描述

equals

方法名:

public static boolean equals(boolean[] a, boolean[] a2)

public static boolean equals(byte[] a, byte[] a2)

public static boolean equals(char[] a, char[] a2)

public static boolean equals(double[] a, double[] a2)

public static boolean equals(float[] a, float[] a2)

public static boolean equals(int[] a, int[] a2)

public static boolean equals(long[] a, long[] a2)

public static boolean equals(short[] a, short[] a2)

public static boolean equals(Object[] a, Object[] a2)

public static boolean equals(boolean[] a, int aFromIndex, int aToIndex, boolean[] b, int bFromIndex, int bToIndex)

public static boolean equals(byte[] a, int aFromIndex, int aToIndex, byte[] b, int bFromIndex, int bToIndex)

public static boolean equals(char[] a, int aFromIndex, int aToIndex, char[] b, int bFromIndex, int bToIndex)

public static boolean equals(double[] a, int aFromIndex, int aToIndex, double[] b, int bFromIndex, int bToIndex)

public static boolean equals(float[] a, int aFromIndex, int aToIndex, float[] b, int bFromIndex, int bToIndex)

public static boolean equals(int[] a, int aFromIndex, int aToIndex, int[] b, int bFromIndex, int bToIndex)

public static boolean equals(long[] a, int aFromIndex, int aToIndex, long[] b, int bFromIndex, int bToIndex)

public static boolean equals(short[] a, int aFromIndex, int aToIndex, short[] b, int bFromIndex, int bToIndex)

public static boolean equals(Object[] a, int aFromIndex, int aToIndex, Object[] b, int bFromIndex, int bToIndex)

作用:

第一部分的九个方法是判断数组 a 与数组 a2 是否相等,如果相等则返回 true 否则返回 false。

第二部分的九个方法是判断数组 a 从 aFromIndex(包含)到 aToIndex(不包含)的部分是不是与数组 b 从 bFromIndex(包含)到 bToIndex(不包含)的部分相等,如果相等则返回 true 否则返回 false。

使用案例:

package Arrays;

import java.util.Arrays;

/**
 *@ClassName: EqualsTest
 *@Description: Arrays中equals的使用
 *
 */
public class EqualsTest {
    public static void main(String[] args) {
        int[] num1 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
        int[] num2 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
        int[] num3 = {0, 0, 0, 3, 4, 5, 6, 7, 8, 9};
        System.out.print("num1与num2相等:");
        System.out.println(Arrays.equals(num1, num2));
        System.out.print("num1与num3相等:");
        System.out.println(Arrays.equals(num1, num3));
        System.out.print("num1的2到8范围与num3的2到8范围相等:");
        System.out.println(Arrays.equals(num1, 2, 8, num3, 2, 8));
        System.out.print("num1的3到8范围与num3的3到8范围相等:");
        System.out.println(Arrays.equals(num1, 3, 8, num3, 3, 8));
    }
}

在这里插入图片描述

fill

方法名:

public static void fill(boolean[] a, boolean val)

public static void fill(byte[] a, byte val)

public static void fill(char[] a, char val)

public static void fill(double[] a, double val)

public static void fill(float[] a, float val)

public static void fill(int[] a, int val)

public static void fill(long[] a, long val)

public static void fill(short[] a, short val)

public static void fill(Object[] a, Object val)

public static void fill(boolean[] a, int fromIndex, int toIndex, boolean val)

public static void fill(byte[] a, int fromIndex, int toIndex, byte val)

public static void fill(char[] a, int fromIndex, int toIndex, char val)

public static void fill(double[] a, int fromIndex, int toIndex, double val)

public static void fill(float[] a, int fromIndex, int toIndex, float val)

public static void fill(int[] a, int fromIndex, int toIndex, int val)

public static void fill(long[] a, int fromIndex, int toIndex, long val)

public static void fill(short[] a, int fromIndex, int toIndex, short val)

public static void fill(Object[] a, int fromIndex, int toIndex, Object val)

作用:

第一部分的九个方法是把 val 的值填充到 a 数组中的每一个元素。

第二部分的九个方法是把 val 的值填充的 a 数组中从 fromIndex(包含)到 toIndex(不包含)范围内的每一个元素。

使用案例:

package Arrays;

import java.util.Arrays;

/**
 *@ClassName: FillTest
 *@Description: Arrays中fill的使用
 *
 */
public class FillTest {
    public static void main(String[] args) {
        int[] nums = new int[9];
        System.out.print("原数组:");
        System.out.println(Arrays.toString(nums));
        Arrays.fill(nums, 1);
        System.out.print("原数组,填充1:");
        System.out.println(Arrays.toString(nums));
        Arrays.fill(nums, 2, 6, 0);
        System.out.print("新数组,范围2到6填充0:");
        System.out.println(Arrays.toString(nums));
    }
}

在这里插入图片描述

mismatch

方法名:

public static int mismatch(boolean[] a, boolean[] b)

public static int mismatch(byte[] a, byte[] b)

public static int mismatch(char[] a, char[] b)

public static int mismatch(double[] a, double[] b)

public static int mismatch(float[] a, float[] b)

public static int mismatch(int[] a, int[] b)

public static int mismatch(long[] a, long[] b)

public static int mismatch(short[] a, short[] b)

public static int mismatch(Object[] a, Object[] b)

public static int mismatch(boolean[] a, int aFromIndex, int aToIndex, boolean[] b, int bFromIndex, int bToIndex)

public static int mismatch(byte[] a, int aFromIndex, int aToIndex, byte[] b, int bFromIndex, int bToIndex)

public static int mismatch(char[] a, int aFromIndex, int aToIndex, char[] b, int bFromIndex, int bToIndex)

public static int mismatch(double[] a, int aFromIndex, int aToIndex, double[] b, int bFromIndex, int bToIndex)

public static int mismatch(float[] a, int aFromIndex, int aToIndex, float[] b, int bFromIndex, int bToIndex)

public static int mismatch(int[] a, int aFromIndex, int aToIndex, int[] b, int bFromIndex, int bToIndex)

public static int mismatch(long[] a, int aFromIndex, int aToIndex, long[] b, int bFromIndex, int bToIndex)

public static int mismatch(short[] a, int aFromIndex, int aToIndex, short[] b, int bFromIndex, int bToIndex)

public static int mismatch(Object[] a, int aFromIndex, int aToIndex, Object[] b, int bFromIndex, int bToIndex)

作用:

第一部分的九个方法是查找并返回数组 a 和数组 b 第一个不相等的元素的索引,找到则返回该索引,找不到则返回-1。

第二部分的九个方法是查找并返回数组 a 从 aFromIndex(包含)到 aToIndex(不包含)的部分与数组 b 从 bFromIndex(包含)到 bToIndex(不包含)的部分第一个不相等的元素的索引,找到则返回该索引(这个索引不在是相对于原来的两个数组的索引,而是相对于把比较范围内的数据新建一个数组的新索引,如返回0则表示两个范围内的第一个元素就不相等,返回2则表示两个范围内的第三个元素不相等),找不到则返回-1。

使用案例:

package Arrays;

import java.util.Arrays;

/**
 *@ClassName: MismatchTest
 *@Description: Arrays类中mismatch的使用
 *
 */
public class MismatchTest {
    public static void main(String[] args) {
        int[] num1 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
        int[] num2 = {0, 1, 0, 3, 4, 5, 6, 7, 8, 9};
        int[] num3 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
        System.out.print("num1匹配num2:");
        System.out.println(Arrays.mismatch(num1, num2));
        System.out.print("num1匹配num3:");
        System.out.println(Arrays.mismatch(num1, num3));
        System.out.print("num1范围3到6匹配num2范围3到6:");
        System.out.println(Arrays.mismatch(num1, 3, 6, num2, 3, 6));
        System.out.print("num1范围1到6匹配num2范围1到6:");
        System.out.println(Arrays.mismatch(num1, 1, 6, num2, 1, 6));
        System.out.print("num1范围1到3匹配num2范围5到6:");
        System.out.println(Arrays.mismatch(num1, 1, 3, num2, 5, 6));
    }
}

在这里插入图片描述

sort

方法名:

public static void sort(byte[] a)

public static void sort(char[] a)

public static void sort(double[] a)

public static void sort(float[] a)

public static void sort(int[] a)

public static void sort(long[] a)

public static void sort(short[] a)

public static void sort(Object[] a)

public static void sort(byte[] a, int fromIndex, int toIndex)

public static void sort(char[] a, int fromIndex, int toIndex)

public static void sort(double[] a, int fromIndex, int toIndex)

public static void sort(float[] a, int fromIndex, int toIndex)

public static void sort(int[] a, int fromIndex, int toIndex)

public static void sort(long[] a, int fromIndex, int toIndex)

public static void sort(short[] a, int fromIndex, int toIndex)

public static void sort(Object[] a, int fromIndex, int toIndex)

作用:

第一部分的八个方法是将数组 a 进行升序排列。

第二部分的八个方法是将数组 a 从 fromIndex(包含)到 toIndex(不包含)的部分进行升序排列。

使用案例:

package Arrays;

import java.util.Arrays;

/**
 *@ClassName: SortTest
 *@Description: Arrays类中sort的使用
 *
 */
public class SortTest {
    public static void main(String[] args) {
        int[] nums1 = {0, 1, 3, 6, 2, 4, 7, 5, 9, 8};
        int[] nums2 = {0, 1, 3, 6, 2, 4, 7, 5, 9, 8};
        System.out.print("原数组:");
        System.out.println(Arrays.toString(nums1));
        Arrays.sort(nums1);
        System.out.print("原数组升序排列:");
        System.out.println(Arrays.toString(nums1));
        System.out.print("原数组范围3到8升序排列:");
        Arrays.sort(nums2, 3, 8);
        System.out.println(Arrays.toString(nums2));
    }
}

parallelSort

**方法名:**方法名参考上述方法 sort ,除了名字不一样其他均相同。

作用:

与上述 sort 方法一样。

区别在于,sort 方法使用快速排序适用于少量数据的排序,parallelSort 方法使用并行排序适用于大量数据的排序。

toString

方法名:

public static String toString(Boolean[] a)

public static String toString(byte[] a)

public static String toString(char[] a)

public static String toString(double[] a)

public static String toString(float[] a)

public static String toString(int[] a)

public static String toString(long[] a)

public static String toString(short[] a)

public static String toString(Object[] a)

作用:

法使用快速排序适用于少量数据的排序,parallelSort 方法使用并行排序适用于大量数据的排序。

toString

方法名:

public static String toString(Boolean[] a)

public static String toString(byte[] a)

public static String toString(char[] a)

public static String toString(double[] a)

public static String toString(float[] a)

public static String toString(int[] a)

public static String toString(long[] a)

public static String toString(short[] a)

public static String toString(Object[] a)

作用:

以上九个方法作用均是将数组 a 的内容以字符串的形式返回。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值