这一章我们主要讲Guava 里面针对Java的原生类型(byte、short、int、long、float、double、char、boolean)提供的一些工具类。里面的内容也很简单。
一 工具类
JAVA 原生类型对应的工具类
原生类型 | Guava工具类(都在com.google.common.primitives包) |
---|---|
byte | Bytes, SignedBytes, UnsignedBytes |
short | Shorts |
int | Ints, UnsignedInteger, UnsignedInts |
long | Longs, UnsignedLong, UnsignedLongs |
float | Floats |
double | Doubles |
char | Chars |
boolean | Booleans |
上面这些工具类(Bytes、Ints等等)里面的工具方法都大体相同,很多连名字都是一样的,所以这里我们就值只列出Ints里面的一些常用方法。如下:
Ints static方法 | 解释 |
---|---|
int checkedCast(long value) | long转换为int,给定的值超过了int最大值,最小值则IllegalArgumentException |
int saturatedCast(long value) | long转换为int。超过最大值为Integer.MAX_VALUE,小于最小值Integer.MIN_VALUE |
int compare(int a, int b) | 比较 |
boolean contains(int[] array, int target) | 是否包含 |
int indexOf(int[] array, int target) | 数组下标 |
int indexOf(int[] array, int[] target) | 数组下标 |
int lastIndexOf(int[] array, int target) | 最后一次出现的下标 |
int min(int... array) | 最小值 |
int max(int... array) | 最大值 |
int constrainToRange(int value, int min, int max) | [min,max]区间里面最接近value的值 |
int[] concat(int[]... arrays) | 多个数组组合成一个数组 |
byte[] toByteArray(int value) | int转byte数组 |
int fromByteArray(byte[] bytes) | byte数组转int |
int fromBytes(byte b1, byte b2, byte b3, byte b4) | byte转int |
Converter<String, Integer> stringConverter() | String转int |
int[] ensureCapacity(int[] array, int minLength, int padding) | 返回一个包含与array相同值的数组,如果原数组长度小于minLength则进行拷贝操作并且保证新数组长度为minLength + padding,否则直接返回原数组 |
String join(String separator, int... array) | 多个int拼接成一个字符串 |
Comparator<int[]> lexicographicalComparator() | 返回一个比较int数组的比较器 |
void sortDescending(int[] array) | 降序排序 |
void sortDescending(int[] array, int fromIndex, int toIndex) | 降序排序 |
void reverse(int[] array) | 反转 |
void reverse(int[] array, int fromIndex, int toIndex) | 反转 |
int[] toArray(Collection<? extends Number> collection) | 转换成数组 |
List<Integer> asList(int... backingArray) | 转换成list |
Integer tryParse(String string) | string转int |
Integer tryParse(String string, int radix) | string转int |
二 无符号支持
JDK原生类型包装类提供了针对有符号类型的方法,而UnsignedInts和UnsignedLongs工具类提供了相应的无符号通用方法。UnsignedInts和UnsignedLongs直接处理原生类型:使用时,由你自己保证只传入了无符号类型的值。此外,对int和long,Guava提供了无符号包装类(UnsignedInteger和UnsignedLong),来帮助你以极小的性能消耗,对有符号和无符号类型进行强制转换。
关于UnsignedInteger和UnsignedLong。以及他俩对应的工具类UnsignedInts和UnsignedLongs已改就不用列出里面的方法了。都是很常规的一些方法。大家一看api的解释就能明白了。
网友评论