Try   HackMD

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裡面寫
'''
<dependency>
	<groupId>com.google.guava</groupId>
	<artifactId>guava</artifactId>
	<version>20.0</version>
</dependency>
'''

有哪些方式?

  1. 如果你想要將collection都列印出來,但是又不想用for迴圈
//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
  1. 使用splite分開一串String後一一放入陣列中
//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工具类的介绍和使用