欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

guava笔记8-Primitives 博客分类: java相关guava

程序员文章站 2024-03-23 15:50:52
...
Java有8中基本数据类型:byte ,short,int,long,float,double,char,boolean。
Java并不存在unsigned类型,guava新定义了UnsignedInteger 和 UnsignedLong 分别表示int和long的无符号类型。

在com.google.common.primitives中提供了一些util类来对基本类型进行操作。

 

byte

BytesSignedBytesUnsignedBytes

short

Shorts

int

Ints, UnsignedInts

long

Longs,UnsignedLongs

float

Floats

double

Doubles

char

Chars

boolean

Booleans


针对byte,提供了Bytes, SignedBytes, UnsignedBytes三个帮助类,分别针对不关心符号,有符号,无符号三种类型的byte数据。Bytes里面的方法很基本,无论有无符号,都能使用。

针对int和long,提供了Xxxs及UnsignedXxxs分别对有符号和无符号的类型进行处理。


这些util类主要提供的方法包括:
(1)对数组进行操作:
asList:把数组转换为对应的List。
toArray:把集合转化为数组
concat:把多个数组合并为一个数组
contains:判断数组中是否包含元素
indexOf:查找数组中元素出现的位置
lastIndexOf:查找数组总元素最后出现的位置
min:查找数组中最小的元素
max:查找元素中最大的元素
join:把数组按指定分隔符拼接为字符串
lexicographicalComparator:字典序比较器

(2)与字节数组相互转换:(big-endian存储法)
常量BYTES:表示这种类型需要多少个字节来表示
fromByteArray:从字节数组转化为该类型数据
fromBytes:同上,不过参数类型是变长字节
toByteArray:转换为字节数组

(3)比较及转换:
compare:比较大小
Ints.checkedCast:把long转化为int,超过范围则抛异常
Ints.saturatedCast:把long转化为int,超过范围则用最接近的int替代

(4)UnsignedInteger和UnsignedLong类型特有的方法:
add加法
Subtract 减法
multiply 乘法
divide 除法
remainder 取余
valueOf bigint或者long转换为无符号类型
asUnsigned 基本数据转换为无符号类型
bigIntegerValue:转换为bigint
parseUnsignedXxx:字符串转化为无符号数据
toString:无符号数据转化为字符串