您的位置:首页 > 编程语言 > Go语言

Google Guava常用类库

2015-03-20 18:41 288 查看

什么是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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: