Google Guava常用类库

什么是Guava

Guava是一个增强Java功能的类库。
Guava工程包含了若干被Google的 Java项目广泛依赖的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。

Guava常用方法

GuavaIO

Guava的Files.readLines()有点脚本语言的意思,但是处理大文件就不方便了

import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.List;

import com.google.common.base.Charsets;
import com.google.common.io.Files;
import com.google.common.io.Resources;

/** * @author wangchao * @date 15-3-23 下午4:06 */
public class Test {
    public static void main(String[] args) throws IOException {
        // 一次性读取文件到List
        List<String> fileList = Files.readLines(new File(""), Charsets.UTF_8);
        // 一次性读取URL到List
        List<String> urlList = Resources.readLines(new URL(""), Charsets.UTF_8);

        String buffer = "";
        // 写入文件
        Files.write(buffer, new File(""), Charsets.UTF_8);
        // 追加文件
        Files.append(buffer, new File(""), Charsets.UTF_8);
    }
}

Guava String

对字符串操作的封装,包括判断字符串是否为空,连接字符串,拆分字符串等常用的字符串的操作。

import java.io.IOException;
import java.util.Map;

import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;

/** * @author wangchao * @date 15-3-23 下午2:48 */
public class Test {
    public static void main(String[] args) throws IOException {
        String str = "a=1, b=2 ; c=3";
        // 检查字符串是否为空或者null
        System.out.println(Strings.isNullOrEmpty(str)); // false

        // Splitter拆分字符串(可去掉空格),比较蛋疼的是返回类型是Iterable。
        Iterable<String> splitResults = Splitter.onPattern("[,;]").trimResults().omitEmptyStrings().split(str);
        System.out.println(splitResults.toString()); // [a=1, b=2, c=3]

        // 同样可以用Joiner拼接
        String joinResult = Joiner.on(",").join(splitResults);
        System.out.println(joinResult); // a=1,b=2,c=3

        // 二次拆分,返回Map类型
        Map<String, String> kvs = Splitter.onPattern("[,;]").trimResults().omitEmptyStrings()
                .withKeyValueSeparator('=').split(str);
        System.out.println(kvs.toString()); // {a=1, b=2, c=3}
        // 使用Joiner拼接
        String kvsJoinResult = Joiner.on(",").withKeyValueSeparator("=").join(kvs);
        System.out.println(kvsJoinResult); // a=1,b=2,c=3
    }
}

Guava 新集合类

类名特点
Multiset对key进行计数
Multimap允许一个key对应多个value
BiMap允许key和value进行反转
Table允许两个key对应一个value
RangeSet描述了一组不相连的、非空的区间
RangeMap描述了一组不相连的、非空的区间,对应value

Guava学习网站

内存.溢出 http://outofmemory.cn/java/guava/
并发编程网 http://ifeve.com/google-guava/
在线文档 http://tool.oschina.net/apidocs/apidoc?api=guava

转载于:https://my.oschina.net/u/1988343/blog/684102

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值