# 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)