Arrays工具类的方法使用说明
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
- 表示将数组a的[from, to)进行typeBinaryOperator的二元迭代,若不指定区间,则默认区间为[0, length + 1);
- 其中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
上一篇: 接口——Java基础
推荐阅读
-
JavaScript 模拟类机制及私有变量的方法及思路_javascript技巧
-
Python 类、对象、方法、面向对象的特征
-
【转载】C#中ArrayList集合类使用RemoveAt方法移除指定索引的元素
-
python面向对象编程思维,面向对象概念,类对象,类的方法,继承,方法重写 笔记
-
Java面向对象(1)面向对象的思想概述以及类的介绍,封装和构造方法
-
Python学习---面向对象---类的定义、创建及对象方法的调用
-
python学习笔记之面向对象中的静态方法、类方法、属性方法总结
-
Python学习之面向对象(类的特殊方法)
-
php实现网页缓存的工具类分享
-
php类里的方法如何访问同类其他方法里的方法