16 数组

16 数组

16.7 Arrays实用功能

  1. equals() 用于比较两个数组是否相等
  2. fill() 用同一个值填充数组各个位置
  3. sort() 用于对数组排序
  4. binarySearch() 在已经排序的数组中查找元素
  5. toString()
  6. hashCode()

此外,Arrays.asList() 接收任意的序列或者数组作为参数,并将其转变为List容器。

16.7.1 复制数组

java标准库提供static方法System.arraycopy()

arraycopy()需要的参数有,源数组,表示从源数组什么位置开始复制的偏移量,目标数组,表示从目标数组什么位置开始复制的偏移量,需要复制的元素个数。当然,对数组的任何越界操作都会导致异常。

然而,如果复制对象数组,那么只是复制了对象的引用,而不是对象本身的拷贝,这被称作浅复制。

System.arraycopy()不会自动包装和拆包,两个数组必须具有相同的确切类型。

16.7.2 数组的比较

数组相等的条件是元素个数必须相等,并且对应位置的元素使用equals()判断相等。

16.7.3 数组元素的比较

  1. 实现java.lang.Comparable接口,只有一个compareTo()方法。
  2. 可以创建一个实现了Comparator接口的类,实现compare()方法。并将此类的实例传入Array.sort()方法。

16.7.5 在已经排序的数组中查找

若找到了目标,Arrays.binarySearch()的返回值大于等于0,否则返回负值,表示若要保持数组的排序状态此目标元素应该插入的位置。这个负值的计算方式为:
-(插入点)-1
插入点指第一个大于查找元素在数组中的位置。

如果使用了Comparator排序了某个对象数组,使用binarySearch()时必须提供同样的Comparator。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值