Java原生工具类
Objects
requireNotNull():为空抛异常,不为空返回本身
deepEquals():对象深度相等(数组层面)判断
- 调用Arrays.deepEquals0()
- 适用于任意深度
- 值得一提的是,java的集合类都覆写了equals()方法,对应元素equals()均为true时返回true
Arrays
asList():将参数作为数组元素,返回数组
deepEquals()与equals():数组对应元素相等判断
- equals()对于对应元素相等的判断调用- o.equals(),而Java中的原生数组并不存在覆写- equals()方法的说法,因此无法达到深度相等的判断。因此,当数组内的元素仍为数组时,仅当对应元素可以用- ==判断相等时,- Arrays.equals()才会判定相等。
- deepEquals()同样基于- Arrays.deepEquals0()实现,对于对应元素是否相等调用- deepEquals0()判断,形成递归调用,达到判断深度相等的目的。
binarySearch():二分查找数组内元素,返回index
- 可指定起始位置
- 可传入Comparator
- 对于引用类型数组的二分查找,要么元素类型实现了Comparable,要么传入Comparator,后者优先用于比较
copyOf():拷贝数组并返回
- 从首位开始拷贝,指定长度与原数组长度取小者作为拷贝长度
- 可以创建原数组元素类型子类的数组,需要传入新的数组类,取元素类型时调用了getComponentType(),创建数组时调用了Array.newInstance()
- 调用native方法System.arraycopy()
copyOfRange():指定原数组范围拷贝
- 左闭右开
- from小于0或不小于数组长度时会抛出异常
- to大于数组长度时截止到数组长度
fill():填充元素
- 可指定首尾
sort():元素排序
- 可指定Comparator
- 可指定首尾
deepToString():将数组转化为字符串
- 深度转化,可呈现多维数组形式
deepHashCode():根据数组元素深度计算哈希值
- result = 31 * result + elementHash- 选择质数能够降低哈希冲突的概率
- 偶数相当于移位,导致信息丢失(高位)
- 选择不大不小的质数
- 31可被优化:i*31 = i<<5 - 1
 
setAll():按照位置赋值
- 需要传入一个函数接口对象,实现计算规则
待学习
- parallelXxx()
- stream()- Collectors类
 
System
getenv():获取操作系统环境变量或JVM变量的值
getProperty(),setProperty(),clearProperty():JVM变量
currentTimeMillis():获取当前系统时间,以毫秒为单位
- GMT 1970.1.1 00:00:00
nanoTime():获取与某一时间点之间的时间间隔
- JVM启动时会随机设定这一时间点
- 可能为负数
- 一般用于计算运行时间或作为随机种子
 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号