方法 | 功能 | 传参类型 | 返回类型 | 实现方法 | 复杂度 |
---|---|---|---|---|---|
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-Ints类
最新推荐文章于 2024-04-23 16:06:19 发布