Java 简明教程

Java Arrays Class

Introduction

Java Arrays 类包含一个 static 工厂,允许将 arrays 视为 lists 。以下是关于 Arrays 的重点部分−

  1. 此类包含用于操作数组(例如排序和搜索)的各种方法。

  2. 如果指定数组引用为 null,则此类中的方法将抛出 NullPointerException。

Arrays Class Declaration

以下是 java.util.Arrays 类的声明:

public class Arrays
   extends Object

Arrays Class Methods

Sr.No.

Method & Description

1

static <T> List<T> asList(T…​ a) 此方法返回一个固定大小的列表,其由指定的数组支持。

2

static int binarySearch(byte[] a, byte key) 此方法使用二进制搜索算法在指定字节数组中搜索指定的值。

3

static int binarySearch(char[] a, char key) 此方法使用二进制搜索算法在指定字符数组中搜索指定的值。

4

static int binarySearch(double[] a, double key) 此方法使用二进制搜索算法在指定双精度数组中搜索指定的值。

5

static int binarySearch(float[] a, float key) 此方法使用二进制搜索算法在指定浮点数组中搜索指定的值。

6

static int binarySearch(int[] a, int key) 此方法使用二进制搜索算法在指定整数数组中搜索指定的值。

7

static int binarySearch(long[] a, int fromIndex, int toIndex, long key) 此方法使用二进制搜索算法在指定长整数数组的某个范围内搜索指定的值。

8

static int binarySearch(Object[] a, Object key) 此方法使用二进制搜索算法在指定数组中搜索指定的对象。

9

static int binarySearch(short[] a, short key) 此方法使用二进制搜索算法在指定短整数数组中搜索指定的值。

10

static <T> int binarySearch(T[] a, T key, Comparator<? super T> c) 此方法使用二进制搜索算法在指定数组中搜索指定的对象。

11

static int compare​(boolean[] a, boolean[] b) 此方法按字典顺序比较两个布尔数组。

12

static int compare​(byte[] a, byte[] b) 此方法按字典顺序比较两个字节数组。

13

static int compare​(char[] a, char[] b) 此方法按字典顺序比较两个字符数组。

14

static int compare​(double[] a, double[] b) 此方法按字典顺序比较两个双精度数组。

15

static int compare​(float[] a, float[] b) 此方法按字典顺序比较两个浮点数组。

16

static int compare​(int[] a, int[] b) 此方法按字典顺序比较两个整数数组。

17

static int compare​(long[] a, long[] b) 此方法按字典顺序比较两个长整数数组。

18

static int compare​(short[] a, short[] b) 此方法按字典顺序比较两个短整数数组。

19

compareUnsigned​(byte[] a, byte[] b) 此方法按字典顺序比较两个字节数组,将元素按未签名方式进行数值处理。

20

compareUnsigned​(int[] a, int[] b) 此方法按字典顺序比较两个 int 数组,将元素按无符号数字对待。

21

compareUnsigned​(long[] a, long[] b) 此方法按字典顺序比较两个 long 数组,将元素按无符号数字对待。

22

compareUnsigned​(short[] a, short[] b) 此方法按字典顺序比较两个 short 数组,将元素按无符号数字对待。

23

static boolean[] copyOf(boolean[] original, int newLength) 此方法复制指定的数组,截断或填充假值(如果需要),以使副本具有指定的长度。

24

static byte[] copyOf(byte[] original, int newLength) 此方法复制指定的数组,截断或填充假值(如果需要),以使副本具有指定的长度。

25

static char[] copyOf(char[] original, int newLength) 此方法复制指定的数组,截断或填充假值(如果需要),以使副本具有指定的长度。

26

static double[] copyOf(double[] original, int newLength) 此方法复制指定的数组,截断或填充假值(如果需要),以使副本具有指定的长度。

27

static float[] copyOf(float[] original, int newLength) 此方法复制指定的数组,截断或填充零(如果需要),以使副本具有指定的长度。

28

static int[] copyOf(int[] original, int newLength) 此方法复制指定的数组,截断或填充零(如果需要),以使副本具有指定的长度。

29

static long[] copyOf(long[] original, int newLength) 此方法复制指定的数组,截断或填充零(如果需要),以使副本具有指定的长度。

30

static short[] copyOf(short[] original, int newLength) 此方法复制指定的数组,截断或填充零(如果需要),以使副本具有指定的长度。

31

static <T> T[] copyOf(T[] original, int newLength) 此方法复制指定的数组,截断或填充 null 值(如果需要),以使副本具有指定的长度。

32

static <T, U> T[] copyOf(U[] original, int newLength,Class<? extends T[]> newType) 此方法复制指定的数组,截断或填充 null 值(如果需要),以使副本具有指定的长度。

33

static boolean[] copyOfRange(boolean[] original, int from, int to) 此方法将指定数组的指定范围复制到新数组中。

34

static byte[] copyOfRange(byte[] original, int from, int to) 此方法将指定数组的指定范围复制到新数组中。

35

static char[] copyOfRange(char[] original, int from, int to) 此方法将指定数组的指定范围复制到新数组中。

36

static double[] copyOfRange(double[] original, int from, int to) 此方法将指定数组的指定范围复制到新数组中。

37

static int[] copyOfRange(int[] original, int from, int to) 此方法将指定数组的指定范围复制到新数组中。

38

static long[] copyOfRange(long[] original, int from, int to) 此方法将指定数组的指定范围复制到新数组中。

39

static short[] copyOfRange(short[] original, int from, int to) 此方法将指定数组的指定范围复制到一个新数组中。

40

static <T> T[] copyOfRange(T[] original, int from, int to) 此方法将指定数组的指定范围复制到一个新数组中。

41

static <T,​U> T[] copyOfRange​(U[] original, int from, int to, Class<? extends T[]> newType) 此方法将指定数组的指定范围复制到一个新数组中。

42

static boolean deepEquals(Object[] a1, Object[] a2) 如果两个指定数组深度相等,则此方法返回 true。

43

static int deepHashCode(Object[] a) 此方法基于指定数组的“深内容”返回哈希码。

44

static String deepToString(Object[] a) 此方法返回指定数组的“深内容”字符串表示形式。

45

static boolean equals(boolean[] a, boolean[] a2) 如果两个指定的布尔数组相等,则此方法返回 true。

46

static boolean equals(byte[] a, byte[] a2) 如果两个指定的字节数组相等,则此方法返回 true。

47

static boolean equals(char[] a, char[] a2) 如果两个指定的字符数组相等,则此方法返回 true。

48

static boolean equals(double[] a, double[] a2) 如果两个指定 double 数组相等,则此方法返回 true。

49

static boolean equals(float[] a, float[] a2) 如果两个指定的 float 数组相等,则此方法返回 true。

50

static boolean equals(int[] a, int[] a2) 如果两个指定的 int 数组相等,则此方法返回 true。

51

static boolean equals(long[] a, long[] a2) 如果两个指定的 long 数组相等,则此方法返回 true。

52

static boolean equals(short[] a, short[] a2) 如果两个指定的 short 数组相等,则此方法返回 true。

53

static boolean equals(Object[] a, Object[] a2) 如果两个指定 Object 数组相等,则此方法返回 true。

54

static boolean equals(T[] a, T[] a2, Comparator<? super T> cmp) 如果两个指定 Object 数组相等,则此方法返回 true。

55

static void fill(boolean[] a, boolean val) 此方法将指定布尔值分配给指定布尔数组的每个元素。

56

static void fill(byte[] a, byte val) 此方法将指定字节值分配给指定字节数组的每个元素。

57

static void fill(char[] a, char val) 此方法将指定 char 值分配给指定 char 数组的每个元素。

58

static void fill(double[] a, double val) 此方法将指定双精度值分配给双精度数组的每个元素。

59

static void fill(float[] a, float val) 此方法将指定浮点值分配给浮点数数组的每个元素。

60

static void fill(int[] a, int val) 此方法将指定的 int 值分配给 int 数组的每个元素。

61

static void fill(long[] a, long val) 此方法将指定 long 值分配给 long 数组的每个元素。

62

static void fill(Object[] a, Object val) 此方法将指定的对象引用分配给对象数组的每个元素。

63

static void fill(short[] a, short val) 此方法将指定的 short 值分配给 short 数组的每个元素。

64

static int hashCode(boolean[] a) 此方法基于指定数组的内容返回哈希代码。

65

static int mismatch​(boolean[] a, boolean[] b) 此方法查找并返回两个布尔数组之间第一次不匹配的索引,否则在未发现不匹配的情况下返回 -1。

66

static int mismatch​(byte[] a, byte[] b) 此方法查找并返回两个字节数组之间第一次不匹配的索引,否则在未发现不匹配的情况下返回 -1。

67

static int mismatch​(char[] a, char[] b) 此方法查找并返回两个 char 数组之间第一次不匹配的索引,否则在未发现不匹配的情况下返回 -1。

68

static int mismatch​(double[] a, double[] b) 此方法查找并返回两个 double 数组之间第一次不匹配的索引,否则在未发现不匹配的情况下返回 -1。

69

static int mismatch​(int[] a, int[] b) 此方法查找并返回两个 int 数组之间第一次不匹配的索引,否则在未发现不匹配的情况下返回 -1。

70

static int mismatch​(long[] a, long[] b) 此方法查找并返回两个 long 数组之间第一次不匹配的索引,否则在未发现不匹配的情况下返回 -1。

71

static int mismatch​(short[] a, short[] b) 此方法查找并返回两个 short 数组之间第一次不匹配的索引,否则在未发现不匹配的情况下返回 -1。

72

static int mismatch​(Object[] a, Object[] b) 此方法查找并返回两个对象数组之间第一次不匹配的索引,否则在未发现不匹配的情况下返回 -1。

73

static int mismatch​(T[] a, T[] b, Comparator<? super T> cmp) 此方法查找并返回两个对象数组之间第一次不匹配的索引,否则在未发现不匹配的情况下返回 -1。

74

static void parallelPrefix​(double[] array, DoubleBinaryOperator op) 此方法使用提供的函数并行累计给定数组的每个元素。

75

static void parallelPrefix​(int[] array, IntBinaryOperator op) 此方法使用提供的函数并行累计给定数组的每个元素。

76

static void parallelPrefix​(long[] array, LongBinaryOperator op) 此方法使用提供的函数并行累计给定数组的每个元素。

77

static <T> void parallelPrefix​(T[] array, BinaryOperator<T> op) 此方法会原地累加给定数组中每个元素,使用提供的函数。

78

static void parallelSetAll​(double[] array, IntToDoubleFunction generator) 此方法会并行设置指定数组的所有元素,使用提供的生成器函数计算每个元素。

79

static void parallelSetAll​(int[] array, IntUnaryOperator generator) 此方法会并行设置指定数组的所有元素,使用提供的生成器函数计算每个元素。

80

static void parallelSetAll​(long[] array, IntToLongFunction generator) 此方法会并行设置指定数组的所有元素,使用提供的生成器函数计算每个元素。

81

static <T> void parallelSetAll​(T[] array, IntFunction<? extends T> generator) 此方法会并行设置指定数组的所有元素,使用提供的生成器函数计算每个元素。

82

static void parallelSort​(byte[] a) 此方法会对指定的字节数组按升序数值顺序进行排序。

83

static void parallelSort​(char[] a) 此方法会对指定的字符数组按升序数值顺序进行排序。

84

static void parallelSort​(double[] a) 此方法会对指定双精度数组按升序数值顺序进行排序。

85

static void parallelSort​(float[] a) 此方法会对指定浮点数数组按升序数值顺序进行排序。

86

static void parallelSort​(int[] a) 此方法会对指定整数数组按升序数值顺序进行排序。

87

static void parallelSort​(long[] a) 此方法会对指定长整数数组按升序数值顺序进行排序。

88

static void parallelSort​(short[] a) 此方法会对指定短整数数组按升序数值顺序进行排序。

89

static <T extends Comparable<? super T>> void parallelSort​(T[] a) 此方法会按照其元素的自然顺序对指定的对象数组按升序进行排序。

90

static <T>> void parallelSort​(T[] a, Comparator<? super T> cmp) 此方法会按照比较器实例提供的顺序对指定的对象数组按升序进行排序。

91

static void setAll​(double[] array, IntToDoubleFunction generator) 此方法会使用提供的生成器函数设置指定数组的所有元素,计算每个元素。

92

static void setAll​(int[] array, IntUnaryOperator generator) 此方法会使用提供的生成器函数设置指定数组的所有元素,计算每个元素。

93

static void setAll​(long[] array, IntToLongFunction generator) 此方法会使用提供的生成器函数设置指定数组的所有元素,计算每个元素。

94

static <T> void setAll​(T[] array, IntFunction<? extends T> generator) 此方法会使用提供的生成器函数设置指定数组的所有元素,计算每个元素。

95

static Spliterator.OfDouble spliterator​(double[] array) 此方法返回一个覆盖指定数组中所有内容的 Spliterator.OfDouble。

96

static Spliterator.OfInt spliterator​(int[] array) 此方法返回一个 Spliterator.OfInt,覆盖指定数组的所有元素。

97

static Spliterator.OfLong spliterator​(long[] array) 此方法返回一个 Spliterator.OfLong,覆盖指定数组的所有元素。

98

static <T> Spliterator<T> spliterator​(T[] array) 此方法返回一个 Spliterator,覆盖指定数组的所有元素。

99

static DoubleStream stream​(double[] array) 此方法返回一个以指定数组为源的顺序 DoubleStream。

100

static IntStream stream​(int[] array) 此方法返回一个以指定数组为源的顺序 IntStream。

101

static LongStream stream​(long[] array) 此方法返回一个以指定数组为源的顺序 LongStream。

102

static <T> Stream<T> stream​(T[] array) 此方法返回一个以指定数组为源的顺序 Stream。

103

static void sort(byte[] a) 此方法按升序对指定的字节数组进行排序。

104

static void sort(char[] a) 此方法按升序对指定字符数组进行排序。

105

static void sort(double[] a) 此方法按升序对指定 double 数组进行排序。

106

static void sort(float[] a) 此方法按升序对指定 float 数组进行排序。

107

static void sort(int[] a) 此方法按升序对指定 int 数组进行排序。

108

static void sort(long[] a) 此方法按升序对指定 long 数组进行排序。

109

static void sort(Object[] a) 此方法按对象的自然顺序对指定的对象数组进行升序排序。

110

static void sort(short[] a) 此方法按升序对指定 short 数组进行排序。

111

static String toString(boolean[] a) 此方法返回指定布尔数组内容的字符串表示形式。

Methods Inherited

此类从以下类中继承方法:

  1. java.util.Object

Arrays Class Example

这个 Java 实例演示了 Arrays class 的 binarySearch() 方法。

// Importing the Arrays class
import java.util.Arrays;

// Public Main Class
public class Main {
  public static void main(String[] args) {
    // Declaring an array
    int arr[] = {8, 5, 3, 10, 2, 1, 15, 20};

    // Sorting the array
    Arrays.sort(arr);

    // Taking an element to search
    int ele = 15;

    // Using binarySearch() method to search "ele"
    System.out.println(
      ele + " presents at the index = " +
      Arrays.binarySearch(arr, ele));
  }
}

让我们编译并运行上述程序,这将生成以下结果 −

15 presents at the index = 6