Java常用类库之Arrays

Arrays

toString​(数组类型[] a)
  • 功能:返回指定数组内容的字符串表示形式。
int[] arr = {8,1,2,3,4};
System.out.println(Arrays.toString(arr));
//[8,1, 2, 3, 4]
binarySearch​(数组类型[] a, 指定类型 key)
  • 功能:使用二进制搜索算法在指定范围内搜索指定类型的值,返回key值的下标
int[] arr = {8,1,2,3,4,5,6,7};
System.out.println(Arrays.binarySearch(arr, 3));
//3
sort​(数组类型[] a)
  • 功能:将指定的数组按升序排序
int[] arr = {8,1,2,3,4};
Arrays.Sort(arr1);
System.out.println(Arrays.toString(arr));
//[1, 2, 3, 4, 8]
compare​(数组类型[] a, 数组类型[] b)
  • 功能:比较两个数组是否相等。如果第一个和第二个数组相等并且包含相同顺序的相同元素,则值为0; 如果第一个数组按字典顺序小于第二个数组,则值小于0; 如果第一个数组按字典顺序大于第二个数组,则值大于0。
int[] arr1 = {8,1,2,3,4};
int[] arr2 = {8,1,2,3,4};
int[] arr3 = {100,0,2,3,4};
System.out.println(Arrays.compare(arr1, arr2));
// 0
System.out.println(Arrays.compare(arr1, arr3));
//-1
System.out.println(Arrays.compare(arr3, arr1));
//1
mismatch​(数组类型[] a, 数组类型[] b)
  • 功能:比较两个数组的内容,完全相同则返回-1;否则返回第一个不同元素的下标;如果元素相同但两个数组长度不同,返回较小长度
int[] arr1 = {8,1,2,3,4};
int[] arr2 = {8,1,2,3,4};
int[] arr1 = {8,1,5,3,4};
System.out.println(Arrays.mismatch(arr1,arr2));
//-1
System.out.println(Arrays.mismatch(arr1,arr3));
//2
equals​(数组类型[] a, 数组类型[] a2)
  • 功能:两个数组元素遍历比较
int[] arr1 = {8,1,2,3,4};
int[] arr2 = {8,1,2,3,4};
System.out.println(Arrays.equals(arr1, arr2));
//true
hashCode​(数组类型[] a)
  • 功能:根据指定数组的内容返回哈希码。
int[] arr2 = {8,1,2,3,4};
System.out.println(Arrays.hashCode(arr2));
copyOf​(数组类型[] original, 数组类型 newLength)
  • 功能:将原数组复制到新的长度的新数组中(动态扩展)
int[] arr1 = {8,1,2,3,4};
System.out.println(arr1.length);
//5
int[] arr4 = Arrays.copyOf(arr1, 10);
System.out.println(arr4.length);
//10
copyOfRange​(数组类型[] original, int from, int to)
  • 功能:将原数组中索引范围为[from, to)的部分复制到新数组中
int[] arr1 = {8,1,2,3,4};
System.out.println(Arrays.toString(arr1));
//[8, 1, 2, 3, 4]
int[] arr4 = Arrays.copyOfRange(arr1, 2, 5);
System.out.println(Arrays.toString(arr4));
//[2, 3, 4]
fill​(数组类型[] a, 数组类型 val)
  • 功能:将指定数据类型的变量val填充到数组中
int[] arr4 = new int[4];
Arrays.fill(arr4, 2);
System.out.println(Arrays.toString(arr4));
//[2, 2, 2, 2]
fill​(数组类型[] a, int fromIndex, int toIndex, 数组类型 val)
  • 功能:将指定数据类型的变量val填充到数组中,范围为[fromIndex, toIndex)
int[] arr1 = {8,1,2,3,4};
Arrays.fill(arr1, 1, 3, 8);
System.out.println(Arrays.toString(arr1));
//[8, 8, 8, 3, 4]
setAll​(int[] array, IntUnaryOperator generator)
  • 功能:使用提供的生成器函数设置指定数组的所有元素以计算每个元素。
int[] arr1 = {8,1,2,3,4};
Arrays.setAll(arr1, new IntUnaryOperator() {
    @Override
    public int applyAsInt(int operand) {
        return operand*5;
    }
});
System.out.println(Arrays.toString(arr1));
//[0, 5, 10, 15, 20]
parallelPrefix​(int[] array, IntBinaryOperator op)
  • 功能:使用提供的函数并行地累积给定数组的每个元素。
int[] arr1 = {8,1,2,3,4};
Arrays.parallelPrefix(arr1, new IntBinaryOperator() {
    @Override
    public int applyAsInt(int left, int right) {
        //left:前一个索引对应的元素
        //right:当前索引对应的元素
        return left+right;
    }
});
System.out.println(Arrays.toString(arr1));
//[8, 9, 11, 14, 18]
parallelSetAll​(int[] array, IntUnaryOperator generator)
  • 功能:使用提供的生成器函数并行设置指定数组的所有元素以计算每个元素。
int[] arr1 = {8,1,2,3,4};
Arrays.parallelSetAll(arr1, new IntUnaryOperator() {
    @Override
    public int applyAsInt(int operand) {
        return operand*2;
    }
});
System.out.println(Arrays.toString(arr1));
//[0, 2, 4, 6, 8]
parallelSort​(int[] a)
  • 功能:将指定的数组按升序排序,排序算法是一种并行的排序-合并算法,它将数组分成子数组,这些子数组本身被排序,然后被合并。当子数组的长度达到最小粒度时,子数组就会使用适当的Arrays.sort方法进行排序。如果指定数组的长度小于最小粒度,那么就用适当的Arrays.sort方法进行排序。该算法需要一个不超过原始数组大小的工作空间。ForkJoin公共池被用来执行任何并行任务。
int[] arr1 = {8,1,2,3,4};
Arrays.parallelSort(arr1);
System.out.println(Arrays.toString(arr1));
//[1, 2, 3, 4, 8]
deepEquals​(Object[] a1, Object[] a2)
  • 功能:将两个数组中的元素逐个比较(==或equals),比较类型必须为Object
Integer[] arr1 = {8,1,2,3,4};
Integer[] arr2 = {8,1,2,3,4};
System.out.println(Arrays.deepEquals(arr1, arr2));
//true
deepHashCode​(Object[] a)
  • 功能:返回基于指定数组的“深层内容”的哈希码
Integer[] arr1 = {8,1,2,3,4};
System.out.println(Arrays.deepHashCode(arr1));
//36049129
deepToString​(Object[] a)
  • 功能:返回指定数组的“深层内容”的字符串表示形式。
Integer[] arr1 = {8,1,2,3,4};
System.out.println(Arrays.deepToString(arr1));
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值