Java Arrays类Api文档
常用方法方法概述
返回类型 | 方法 | 说明 |
---|---|---|
String | toString(array) | 将数组array转换成字符串 |
void | sort(array) | 对数组进行升序排列 |
void | fill(array,value) | 将数组arr全部元素赋值为val |
boolean | equals(array1,array2) | 判断两个数组是否相等 |
T[] | copyOf(array,length) | 将数组arr复制成一个长度为length的新数组 |
int | binarySearch(array, val) | 查询元素val在arr中的下标值 |
list | asList(array) | 数组转换为list集合 |
T[] | copyOfRange(arry,length) | 指定数组的指定范围复制到新数组中 |
int | hashCode(array) | 获得数组的哈希值 |
方法详情
文章目录
sort
public static void sort(T[] a)
按照数字顺序排列指定的数组。
-
sort
public static void sort(T[] a, int fromIndex, int toIndex)
按升序排列数组的指定范围。要排序的范围从索引
fromIndex
(包括)扩展到索引toIndex
,排他。如果fromIndex == toIndex
,要排序的范围是空的。 -
sort
public static <T> void sort(T[] a, Comparator<? super T> c)
根据指定的比较器引发的顺序对指定的对象数组进行排序。数组中的所有元素必须通过指定的比较器相互比较 (即
c.compare(e1, e2)
不能为ClassCastException
中的任何元素e1
和e2
)。这种保证是稳定的 :等同的元素将不会被排序作为排序的结果。
-
sort
public static <T> void sort(T[] a, int fromIndex, int toIndex, Comparator<? super T> c)
根据指定的比较器引发的顺序对指定的对象数组的指定范围进行排序。要排序的范围从索引
fromIndex
(包括)扩展到索引toIndex
,排他。(如果fromIndex==toIndex
,则排序范围为空。)范围内的所有元素都必须是指定比较相互比较的 (即,c.compare(e1, e2)
不得抛出ClassCastException
任何元件e1
和e2
中的范围内)。
binarySearch
-
binarySearch
public static int binarySearch(T[] a, T key)
使用二进制搜索算法搜索指定数组的指定数组。
-
binarySearch
public static int binarySearch(byte[] a, int fromIndex, int toIndex, byte key)
使用二进制搜索算法搜索指定值的指定字节数组的范围
-
binarySearch
public static <T> int binarySearch(T[] a, T key, Comparator<? super T> c)
使用二叉搜索算法搜索指定对象的指定数组。 在进行此调用之前,数组必须按照指定的比较器(如
sort(T[\], Comparator)
方法)按升序排列。 如果没有排序,结果是未定义的。 如果数组包含与指定对象相等的多个元素,则不能保证将找到哪个元素。-
参数类型
T
- 数组中对象的类 -
参数
a
- 要搜索的数组key
- 要搜索的值c
- 排列数组的比较器。 Anull
值表示应使用元素’ natural ordering '。 -
结果
搜索键的索引,如果它包含在数组中; 否则,
(-(*insertion point*) - 1)
。 如果阵列中的所有元素都小于指定键的第一元件比所述键时,或a.length
的索引: 插入点被定义为将键插入到阵列的点。 请注意,这确保当且仅当找到该键时返回值将为> = 0。 -
异常
ClassCastException
- 如果数组包含使用指定的比较器不 相互比较的元素,或者搜索关键字与使用该比较器的数组的元素不可比较。
-
-
binarySearch
public static <T> int binarySearch(T[] a, int fromIndex, int toIndex, T key, Comparator<? super T> c)
使用二进制搜索算法搜索指定对象的指定数组的范围。 在进行此呼叫之前,范围必须根据指定的比较器(如
sort(T[\], int, int, Comparator)
方法)按升序排序。 如果没有排序,结果是未定义的。 如果范围包含等于指定对象的多个元素,则不能保证将找到哪个元素。-
参数类型
T
- 数组中对象的类 -
参数
a
- 要搜索的数组fromIndex
- 要搜索的第一个元素(含)的索引toIndex
- 要搜索的最后一个元素(排他)的索引key
- 要搜索的值c
- 排列数组的比较器。 Anull
值表示应使用元素’ natural ordering '。 -
结果
搜索键的索引,如果它包含在指定范围内的数组中; 否则,
(-(*insertion point*) - 1)
。 如果在范围内的所有元素都小于指定的键在比所述键时,或toIndex
的范围中的第一个元素的索引: 插入点被定义为将键插入到阵列的点。 请注意,这确保当且仅当找到该键时返回值将为> = 0。 -
异常
ClassCastException
- 如果范围包含使用指定的比较器不 相互比较的元素,或者搜索键与使用该比较器的范围内的元素不可比。IllegalArgumentException
- 如果fromIndex > toIndex
ArrayIndexOutOfBoundsException
- 如果fromIndex < 0 or toIndex > a.length
-
从以下版本开始:
1.6
-
equals
public static boolean equals(T[] a,
T[] a2)
如果两个指定的longs数组彼此相等 ,则返回true
。
fill
-
fill
public static void fill(T[] a, T val)
将指定的long值分配给指定的longs数组的每个元素。
-
fill
public static void fill(T[] a, int fromIndex, int toIndex, T val)
将指定的long值分配给指定的longs数组的指定范围的每个元素。 要填充的范围从索引
fromIndex
(包括)扩展到索引toIndex
,排他。 (如果fromIndex==toIndex
,要填充的范围是空的。)
copyOf
-
copyOf
public static <T> T[] copyOf(T[] original, int newLength)
复制指定的数组,用空值截断或填充(如有必要),以便复制具有指定的长度。 对于原始数组和副本都有效的所有索引,两个数组将包含相同的值。 对于在副本中而不是原件有效的任何索引,副本将包含
null
。 当且仅当指定长度大于原始数组的长度时,这些索引才会存在。 结果数组与原始数组完全相同的类。 -
copyOf
public static <T,U> T[] copyOf(U[] original, int newLength, 类<? extends T[]> newType)
复制指定的数组,用空值截断或填充(如有必要),以便复制具有指定的长度。 对于原始数组和副本都有效的所有索引,两个数组将包含相同的值。 对于在副本中而不是原件有效的任何索引,副本将包含
null
。 当且仅当指定长度大于原始数组的长度时,这些索引才会存在。 最终的数组是newType
。
copyOfRange
-
copyOfRange
public static <T> T[] copyOfRange(T[] original, int from, int to)
将指定数组的指定范围复制到新数组中。范围(
from
)的初始指数必须在零和original.length
之间,包括在内。original[from]
的值被放置在副本的初始元素中(除非from == original.length
或from == to
)。原始数组中后续元素的值将被放置在副本中的后续元素中。必须大于或等于from
的范围(to
)的最终指数可能大于original.length
,在这种情况下,null
被放置在其索引大于或等于original.length - from
的副本的所有元素中。返回的数组的长度将为to - from
。结果数组与原始数组完全相同的类。
-
copyOfRange
public static <T,U> T[] copyOfRange(U[] original, int from, int to, 类<? extends T[]> newType)
将指定数组的指定范围复制到新数组中。 范围(
from
)的初始指数必须在零和original.length
之间,包括在内。original[from]
的值被放置在副本的初始元素中(除非from == original.length
或from == to
)。 原始数组中后续元素的值将被放置在副本中的后续元素中。 必须大于或等于from
的范围(to
)的最终指数可能大于original.length
,在这种情况下,null
被放置在其索引大于或等于original.length - from
的副本的所有元素中。 返回的数组的长度将为to - from
。 结果的数组是newType
类。
asList
@SafeVarargs
public static <T> List<T> asList(T... a)
返回由指定数组支持的固定大小的列表,将返回的列表更改为“写入数组”。该方法作为基于数组和基于集合的API之间的桥梁,与Collection.toArray()
相结合。返回的列表是可序列化的,并实现RandomAccess
。
hashCode
public static int hashCode(T[] a)
根据指定数组的内容返回哈希码。对于任何两个T
阵列a
和b
这样Arrays.equals(a, b)
,也是Arrays.hashCode(a) == Arrays.hashCode(b)
的情况。
toString
public static String toString(T[] a)
返回指定数组的内容的字符串表示形式。 字符串表示由数组元素的列表组成,括在方括号( "[]"
)中。 相邻的元素由字符", "
(逗号后跟一个空格)分隔开。 元素被转换为字符串由String.valueOf(long)。
返回"null"
如果a
是null。