当前位置: 移动技术网 > IT编程>开发语言>Java > Arrays工具类的方法使用说明

Arrays工具类的方法使用说明

2020年07月31日  | 移动技术网IT编程  | 我要评论
Arrays方法asList将数组转化成List集合。注意(1)该方法适用于对象型数据的数组(String、Integer…);(2)该方法不建议使用于基本数据类型的数组(byte,short,int,long,float,double,boolean);(3)该方法将数组与List列表链接起来:当更新其一个时,另一个自动更新;(4)不支持add()、remove()、clear()等方法;(5)用此方法得到的List的长度是不可改变的。这个ArrayList不是java.util包下的,

Arrays

方法

asList

将数组转化成List集合。

注意

(1)该方法适用于对象型数据的数组(String、Integer…);

(2)该方法不建议使用于基本数据类型的数组(byte,short,int,long,float,double,boolean);

(3)该方法将数组与List列表链接起来:当更新其一个时,另一个自动更新;

(4)不支持add()、remove()、clear()等方法;

(5)用此方法得到的List的长度是不可改变的。这个ArrayList不是java.util包下的,而是java.util.Arrays.ArrayList。它是Arrays类自己定义的一个静态内部类,这个内部类没有实现add()、remove()方法,而是直接使用它的父类AbstractList的相应方法。

总结

如果你的List只是用来遍历,就用Arrays.asList()。

如果你的List还要添加或删除元素, 就new一个java.util.ArrayList,然后一个一个地添加或删除元素。


binarySearch

使用二分搜索法来搜索指定的数组,以获得指定对象。

该方法返回要搜索元素的索引值。

int Arrays.binarySearch(Object[] a,Object key)
int Arrays.binarySearch(Object[] a, int fromIndex, int toIndex,Object key)

前提

必须在进行此调用之前对数组进行排序(sort 方法)。如果没有对数组进行排序,则结果是不明确的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。

优点

查找效率比一般的从数组中从左到右挨个挨个的查找的平均查找时间要快


compare


compareUnsigned


copyOf

Arrays的copyOf()方法传回的数组是新的数组对象,改变传回数组中的元素值,不会影响原来的数组。

copyOf()的第二个自变量指定要建立的新数组长度,如果新数组的长度超过原数组的长度,则保留数组默认值。

T[] copyOf(T[] original, int newLength)

copyOfRange

从original数组的下标from开始复制,到下标to结束。

copyOfRange(T[] original, int from, int to):T[]

deepEquals

比较多维数组的各元素是否相等。

boolean deepEquals(Object[] a1, Object[] a2)

deepHashCode

返回多维数组的hashCode值。


deepToString

返回多维数组的字符串形式。

String deepToString(Object[] a)

equals

比较数组的各元素是否相等。

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

fill

为数组(按照指定范围)填充相同的值。

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

hashCode

返回数组的hashCode值。


mismatch

检出 2 个数组中哪几个元素不相等。

如果 2 个数组完全相等,该方法返回 -1;否则的话,返回第一个不匹配项目的下标。


parallelPrefix

  1. 表示将数组a的[from, to)进行typeBinaryOperator的二元迭代,若不指定区间,则默认区间为[0, length + 1);
  2. 其中BinaryOperator就是二元操作符的意思(接口方法)。
void arallelPrefix(T[] array, BinaryOperator<T> op)
void parallelPrefix(T[] array, int fromIndex, int toIndex,BinaryOperator<T> op)
Arrays.parallelPrefix(arr2, (left, right)-> left * right);

parallelSetAll

一个数组中的所有元素全部做指定表达式操作。

void parallelSetAll(T[] array, IntFunction<? extends T> generator)
Arrays.parallelSetAll(arr3 , operand -> operand * 5);

parallelSort

对数组进行升序排序或自定义排序。

void parallelSort(T[] a)
void parallelSort(T[] a, int fromIndex, int toIndex,Comparator<? super T> cmp)
Arrays.parallelSort(arrl, (o1, o2) -> o1.length() - o2.length()) ;

setAll

一个数组中的所有元素全部做指定表达式操作。

void setAll(T[] array, IntFunction<? extends T> generator)
Arrays.setAll(setAllArr, a -> a * 3);

sort

对数组元素(按照指定范围)升序(或自定义)排序。

void sort(Object[] a)
void sort(Object[] a, int fromIndex, int toIndex)
void sort(T[] a, Comparator<? super T> c)
void sort(T[] a, int fromIndex, int toIndex, Comparator<? super T> c)

spliterator

返回一个Spliterator,进行Spliterator相关操作。

Spliterator<T> spliterator(T[] array)

stream

将数组转为流式,对array进行流式处理,可用一切流式处理的方法。

Stream<T> stream(T[] array)

toString

返回数组的字符串形式。

String toString(Object[] a)

若内容有错或补充,欢迎交流!
个人博客:https://tzq0301.github.io/

本文地址:https://blog.csdn.net/m0_46261993/article/details/107679011

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网