Guava(八)

13 篇文章 0 订阅

目录

【原生类型】
    Java原生类型就是指8中基本类型:byte、short、int、long、float、double、char和boolean。
    原生类型不能当作对象或泛型的类型参数使用,就意味着许多通用方法都不能应用于它们。Guava提供了若干通用工具,包括原生类型数组与集合API的交互,原生类型和字节数组的相互转换,以及对某些原生类型的无符号形式的支持。

原生类型Guava工具类
byteBytes, SignedBytes, UnsignedBytes
shortShorts
intInts, UnsignedInteger, UnsignedInts
longLongs, UnsignedLong, UnsignedLongs
floatFloats
doubleDoubles
charChars
booleanBooleans

注:
● Bytes工具类没有定义任何区分有符号和无符号字节的方法,而是把它们都放到了 SignedBytes和 UnsignedBytes类中,因为字节类型的符号性比其他类型要略微含糊一些。
● int和long的无符号类型在 UnsignedInts和 UnsignedLongs类中,但由于这两个类型的大多数用法都是有符号的,因此将 Ints和 Longs按照有符号形式处理方法的输入参数,以外还提供了int和long的无符号形式的包装类,UnsignedInteger和 UnsignedLong,以极小的性能消耗对有符号和无符号值进行强制转换。
● 建议在从Guava查找原生类型方法之前,先查找 Arrays类或 原生类型对应的包装类。

在本章下面描述的方法签名中,我们用Wrapper表示JDK包装类,Prims表示原生类型。

一、原生类型数组工具

方法名说明是否与符号相关
List asList(prim…)将数组转为对应包装类的List
prim[] toArray(Collection)将集合拷贝为数组
prim[] concat(prim[]…)串联多个数组
boolean contains(prim[], prim)数组中是否包含给定值
int indexOf(prim[], prim)给定值在数组中首次出现的索引,若不存在返回-1
int lastIndexOf(prim[], prim)给定值在数组中最后出现的索引,若不存在返回-1
prim min(prim…)查找最小值
prim man(prim…)查找最大值
String join(String, prim…)数组按给定分隔符拼接为字符串
Comparator<prim[]> lexicographicalComparator()按字典顺序比较数组

注:与符号无关方法存在于Bytes, Shorts, Ints, Longs, Floats, Doubles, Chars, Booleans中;与符号相关方法除 Bytes外都存在。

二、通用工具方法

原生类型Guava工具类可用性
int compare(prim, prim)传统的compare,JDK7已有符号相关
prim checkedCast(long)将给定long转为某一原生类型,若不符合抛出IllegalArgumentException仅用于符号相关的整型
prim saturatedCast(long)将给定long转为某一原生类型,若不符合则使用最接近的值仅用于符号相关的整型

三、字节转换方法

方法说明
int BYTES常量:表示该原生类型需要的字节数
prim fromByteArray(byte[])使用字节数组的前Prims.BYTES个字节,按大字节序返回原生类型值;如果bytes.length <= Prims.BYTES,抛出IAE
prim fromBytes(byte…, byte)接受Prims.BYTES个字节参数,按大字节序返回原生类型值
byte[] toByteArray(prim)按大字节序返回value的字节数组

四、无符号通用工具方法
    以下方法存在于 UnsignedInts和 UnsignedLongs中

方法说明
int/long parseUnsignedInt(String)/parseUnsignedLong(String)按无符号十进制解析字符串
int/long parseUnsignedInt(String, int)/parseUnsignedLong(String, int)按无符号的特定进制解析字符串
String toString(int)/toString(long)数字按无符号十进制转为字符串
String toString(int, int)/toString(long, int)数字按无符号特定进制转为字符串

五、无符号包装类
    以下方法存在于 UnsignedInteger和 UnsignedLong中,返回类型 UnsignedPrim指无符号包装类。

方法说明
UnsignedPrim plus(UnsignedPrim)、minus、times、dividedBy、mod算数运算(加减乘除余)
UnsignedPrim valueOf(BigInteger)按给定BigInteger返回无符号对象,若BigInteger为负或不匹配,抛出IllegalArgumentException
UnsignedPrim valueOf(long)按给定long返回无符号对象,若long为负或不匹配,抛出IllegalArgumentException
BigInteger bigIntegerValue()用BigInteger返回该无符号对象的值
toString(), toString(int radix)返回无符号值的字符串表示
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值