GUAVA-Ints类

方法 功能 传参类型 返回类型 实现方法 复杂度
hashCode 返回int型的hash值(直接用溢出当作hash) int int 直接返回int型的value O(1)
checkedCast 检查参数是否超过int范围 long int 强转为int,越界则报错 O(1)
saturatedCast 将参数重置在int范围内 long int 越界则重置为最值,否则不变 O(1)
compare 比较两个参数大小 int,int int 直接进行逻辑比较返回依次为-1,0,1(代替了相减操作) O(1)
contains 检查参数是否在数组中 int[],int boolean for循环扫描 O(n)
indexOf 找到参数在数组第一次出现的下标位置,未找到返回-1 int[],int int for循环扫描 O(n)
indexOf 找到数组中第一次出现的匹配数组下标,没有则返回-1 int[],int[] int 暴力循环(此处可用KMP优化) O(m*n)
lastIndexOf 反向indexOf
min 找到参数中的最小值 int… int for循环扫描 O(n)
max 找到参数中的最大值
concat 将参数连接成一个数组 int[]… int[] for循环调用System.arraycopy连接 O(n)
toByteArray 将参数拆分为byte表示的数组,即按每8位为一个byte int byte[] 位移运算后直接强转为byte O(1)
fromByteArray 上面的逆过程 注意这里在位移前将byte & 0xFF,这样做是为了保证二进制数据的一致性,即系统认为byte会转为int因此当作了32位计算,那么其补码也会是32位的,这就造成了高位数据自动补1的情况,为了消除这种不一致性,先进行&运算再位移,当然先进行位移在进行&效果相同
IntConverter 继承Converter String, Integer,实现Serializable接口,doForward,doBackward,toString,readResolve方法
join 在参数之间插入字符串进行分割 String,int… String StringBulider直接进行append,预置长度的5倍空间 O(n)
LexicographicalComparator内置比较器compare 字符串比较方式 本质为字符串的比较形式
toArray 将集合变为整形数组 Collection int[] 直接循环collection.toArray() O(n)
asList 整形参数转换为List int… List 直接new IntArrayAsList,IntArrayAsList为内部类,本质为int数组

你可能感兴趣的:(GUAVA源码阅读)