Guava非常好用的工具類

1、對數組的操作

 

                //獲取數組中某個值得索引
		int[] content = {1,3,4};
		int in = Ints.indexOf(content, 3); // 1 guava api
		System.out.println(in);
		System.out.println(Arrays.binarySearch(content, 4));// java api
		
		//合併兩個數組
		int[] arr = Ints.concat(new int[] {1,2}, new int[]{3, 4});  // 1,2,3,4
		System.out.println(Arrays.toString(arr));
		
		
		//是否包含
		boolean result = Ints.contains(new int[]{10,20,30,40}, 20); // true
		System.out.println(result);
		
		//最小值
		int min = Ints.min(new int[]{10,20,30,40}); // 10
		System.out.println(min);
		
		//最小值
		int max = Ints.max(10,20,30,40); // 10
		System.out.println(max);
				
		//java中也有類似的api, 只能比較兩個值
		System.out.println(Integer.max(1, 9));

2、集合創建和初始化

                List<String> slist = new ArrayList<>();
		List<String> slist1 = Lists.newArrayList();
		
		Set<String> set = Sets.newHashSet("one", "two", "three");
		List<String> list = Lists.newArrayList("one", "two", "three");
		
		/**
		 * 
		 */
		Map<String, Map<String, String>> map = new HashMap<String, Map<String, String>>();
		List<List<Map<String, String>>> listnormal = new ArrayList<List<Map<String, String>>>();

		Map<String, Map<String, String>> map1 = Maps.newHashMap();
		List<List<Map<String, String>>> list1 = Lists.newArrayList();
		
		
		/**
		 * 不可變list
		 */
		ImmutableList<String> of = ImmutableList.of("a", "b", "c", "d");
		System.out.println(of);
		
		
		ImmutableMap<String, String> immutablemap = ImmutableMap.of("key1", "value1", "key2", "value2");
		ImmutableSet<Integer> numbers = ImmutableSet.of(10, 20, 30, 40, 50);

字符串的拆分與合併

                Joiner joiner = Joiner.on("; ").skipNulls();
		System.out.println(joiner.join("ay", null, "al", "love"));// ay; al;love

		List<String> joinListStr = new ArrayList<>();
		joinListStr.add("ay");
		joinListStr.add(null);
		joinListStr.add("al");
		joinListStr.add("love");
		Joiner joiner2 = Joiner.on("; ").skipNulls();
		System.out.println(joiner2.join(joinListStr));// ay; al; love
		
		
		// trimResults 和 omitEmptyStrings可以去空,去空白
		Iterable splitterArray = Splitter.on(',').trimResults().omitEmptyStrings().split("ay,al,,   love");
		System.out.println(splitterArray.toString());// [ay, al, love]

		// 傳統的字符串分割
		String[] originArray = "ay,al,,   love".split(",");
		System.out.println(Arrays.toString(originArray));// [ay, al, , love]
		System.out.println(originArray.length);// 4(長度爲)
		for (int i = 0; i < originArray.length; i++) {
			System.out.println(originArray[i]);
		}
		
		

		Map<String, String> cityDistMapper = ImmutableMap.of("海淀區", "北京", "朝陽區", "北京", "昌平區", "北京");
		String cityDistMapperStr = Joiner.on("|").withKeyValueSeparator("-").join(cityDistMapper);
		System.out.println(cityDistMapperStr);

		Map<String, String> cityDistMapper1 = Maps.newHashMap();
		String beijingDistricts = " 海淀區:北京|   朝陽區:北京| 東城區:北京 ||西城區:北京|昌平區:北京  |   |";
		cityDistMapper1.putAll(
				Splitter.on("|").omitEmptyStrings().trimResults().withKeyValueSeparator(":").split(beijingDistricts));
		System.out.println(cityDistMapper1.entrySet().toString());

新集合

                // 一種key可以重複的map,子類有ListMultimap和SetMultimap,對應的通過key分別得到list和set
		Multimap<String, Integer> multimap = ArrayListMultimap.create();
		multimap.put("abc", 1);
		multimap.put("abc", 2);
		multimap.put("abc", 3);
		multimap.put("abc", 4);
		multimap.put("abcd", 5);
		multimap.put("abcde", 6);
		for (Integer num : multimap.get("abc")) {
			System.out.println(num);
		}

		// 嚴格的說不是集合,可以增加重複的元素,並且可以統計出重複元素的個數,例子如下:
		Multiset<Integer> multiSet = HashMultiset.create();
		multiSet.add(10);
		multiSet.add(30);
		multiSet.add(30);
		multiSet.add(40);
		System.out.println(multiSet.count(30)); // 2
		System.out.println(multiSet.size()); // 4

		// 是一個一一映射,可以通過key得到value,也可以通過value得到key; 雙向map
		BiMap<Integer, String> biMap = HashBiMap.create();
		biMap.put(1, "hello");
		biMap.put(2, "helloa");
		biMap.put(3, "world");
		biMap.put(4, "worldb");
		biMap.put(5, "my");
		biMap.put(6, "myc");

		System.out.println(biMap.get(2));
		int value = biMap.inverse().get("my");
		System.out.println("my --" + value);

字符串處理

                /**
		 * null to "";
		 */
                //String activityId = paramMap.get("activityId") != null ? paramMap.get("activityId").toString() : "";
		System.out.println(Strings.nullToEmpty(null));// ""
		System.out.println(Strings.nullToEmpty("ay"));// "ay"
		System.out.println(Strings.emptyToNull(""));// null
		System.out.println(Strings.emptyToNull("ay"));// "ay"
		
		/**
		 * 共同前綴
		 */
		String a = "com.jd.coo.Hello";
		String b = "com.jd.coo.Hi";
		String ourCommonPrefix = Strings.commonPrefix(a, b);
		System.out.println("a,b common prefix is " + ourCommonPrefix);
		
		/**
		 * 共同後綴
		 */
		// Strings.commonSuffix(a,b) demo
		String c = "com.google.Hello";
		String d = "com.jd.Hello";
		String ourSuffix = Strings.commonSuffix(c, d);
		System.out.println("c,d common suffix is " + ourSuffix);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章