1. 程式人生 > >學習Google guava工具類

學習Google guava工具類

1、前言

好的工具類能節約開發者的開發成本,今天學習一個新的工具類guava。guava是谷歌出品的一款開源java工具類,提供一些常用的方法。以下指示一些常用的方法,guava還提供其他的一些方法,可以通過線上API自行學習。

2、座標

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>19.0</version>
</dependency>

3、小試牛刀

        /**
	 *  集合工具
	 * */
	@Test
	/* 
	 * 簡寫new方法,可以預設初始化。可以繼續新增元素(優於Arrays.asList)
	 * Map、Set均可這樣寫
	 */
	public void test01() {
		List<Integer> intList = Lists.newArrayList(1,2,3);
		System.out.println(intList); //[1,2,3]
		System.out.println("----------------------");
		intList.add(5);
		System.out.println(intList); //[1,2,3,5]
	}

	@Test
	// 取出集合中某一屬性拼接成List
	public void test02() {
		List<Student> stuList = Lists.newArrayList(new Student("Test001","Jack Chen","Kong Fu"), 
				new Student("Test002","Maike Jackson","Dancing"));
		List<String> noList = Lists.transform(stuList, new Function<Student, String>() {
			@Override
			public String apply(Student stu) {
				return stu.getNo();
			}
		});
		
		System.out.println(noList.toString()); //[Test001, Test002]
	}
	
	@Test
	// 按照List集合中的物件唯一屬性,與集合中的物件對應,返回Map
	public void test03() {
		List<Student> stuList = Lists.newArrayList(new Student("Test001","Jack Chen","Kong Fu"), 
				new Student("Test002","Maike Jackson","Dancing"));
		ImmutableMap<String, Student> map = Maps.uniqueIndex(stuList, new Function<Student, String>() {
			@Override
			public String apply(Student stu) {
				return stu.getNo();
			}
		});
		
		System.out.println(map.get("Test002").toString()); //Student [no=Test002, name=Maike Jackson, major=Dancing]
	}
	
	/**
	 * String工具類
	 * */
	@Test
	public void test04() {
		String str = "";
		System.out.println(str);
		System.out.println("--------------");
		System.out.println(Strings.emptyToNull(str)); // null
		System.out.println("--------------");
		System.out.println(Strings.nullToEmpty(Strings.emptyToNull(str))); // ""
		System.out.println(Strings.isNullOrEmpty("")); //true
	}
	
	/**
	 * 字串的分割和連線
	 * */
	@Test
	public void test05() {
		Joiner joiner = Joiner.on("#");
		String str = joiner.join(Lists.newArrayList(1, 3, 5, 7));
		System.out.println(str); // 1#3#5#7
		
		String str2 = " a;null;b;;c; ;d;   e ;f ";
		Splitter split = Splitter.on(";");
		Iterable<String> list = split.split(str2);
		System.out.println(list.toString()); //[ a, null, b, , c,  , d,    e , f ]
		
		// 取消前後的空格以及忽略空字元換
		System.out.println( Splitter.on(";").trimResults().omitEmptyStrings().split(str2).toString()); //[a, null, b, c, d, e, f]
	}  

4、參考文件

線上API:http://tool.oschina.net/apidocs/apidoc?api=guava

中文PDF文件下載:https://pan.baidu.com/s/1RTbTU26-t1s5lMkvfzONOQ