# Google Guava 工具類 的介紹和使用
###### tags: `Shannon`
# 工具類?
> 為甚麼有人要做工具類的東西?
- 為了節省開發人員的時間提高效率,像是重複的句子很長又很多,所以把常用的功能封裝起來給他人使用。
- 所以google也做出類似的動作,把一些常用的功能給封裝起來,guava就此誕生!!guava有以下幾個特點
1. API設計很好
2. code簡潔簡單
3. 節省時間 資源
# Guava裡面有甚麼java項目的核心庫?
1. 集合 `[collections]`
2. 缓存 `[caching]`
3. 原生类型支持 `[primitives support]`
4. 并发库 `[concurrency libraries]`
5. 通用注解 `[common annotations]`
6. 字符串处理 `[string processing]`
7. I/O 等等。
# 如何使用Guava?
- 引入maven denpendency,如果是用在spring就可以在`POM.xml`裡面寫
```xml
'''
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
'''
```
# 有哪些方式?
1. 如果你想要將collection都列印出來,但是又不想用for迴圈
```java
//use java
List<String> list = new ArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
String str = "";
for(int i=0; i<list.size(); i++){
str = str + "-" +list.get(i);
}
//str 为-aa-bb-cc
//use guava
List<String> list = new ArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
String result = Joiner.on("-").join(list);
//result为 aa-bb-cc
```
2. 使用splite分開一串String後一一放入陣列中
```java
//use java
List<String> list = new ArrayList<String>();
String a = "1-2-3-4-5-6";
String[] strs = a.split("-");
for(int i=0; i<strs.length; i++){
list.add(strs[i]);
}
//use guava
String str = "1-2-3-4-5-6";
List<String> list = Splitter.on("-").splitToList(str);
//list为 [1, 2, 3, 4, 5, 6]
```
其他用法可以參考這裡:
[Google guava工具类的介绍和使用](https://my.oschina.net/u/2551035/blog/802634)