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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值