java Guava工具集学习(强大)




import java.util.Iterator;
import java.util.List;
import java.util.Map;

import com.google.common.base.Joiner;
import com.google.common.base.Predicate;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
import com.google.common.collect.FluentIterable;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;

/**
* Guava工具类
*
* @author
* @time 2017年9月5日上午9:39:22
*/
public class GuavaUtils {
private GuavaUtils() {
}

/**
* 用分割符把相应字符串隔开
*
* @param separator
* =>|
* @param objects
* =>1,2,3
* @return 1|2|3
*/
public static String joinString(String separator, Object... objects) {
Joiner joiner1 = Joiner.on(separator).skipNulls();
return joiner1.appendTo(new StringBuilder(""), objects).toString();
}

/**
* 将map转换成string
*
* @param map
* @return
*/
@SuppressWarnings("all")
public static String mapToString(Map map) {
return Joiner.on(";").withKeyValueSeparator("=").join(map);
}

/**
* 将字符串转换成List集合
*
* @param separator
* @param str
* @return
*/
public static List<String> getListByStr(String separator, String str) {
Splitter sp = Splitter.on(separator).trimResults();
return sp.splitToList(str);
}

/**
* 判断集合中是否存在该元素
* @param list
* @param element
* @return
*/
public static boolean isListContainsObject(List<? extends Object> list,Object element){
return Iterables.contains(list, element);
}


public static void main(String[] args) throws Exception {
System.out.println(GuavaUtils.joinString("|", "1", "2", "3"));
Map<String, String> testMap = Maps.newLinkedHashMap();
testMap.put("Cookies", "12332");
testMap.put("Content-Length", "30000");
testMap.put("Date", "2016.12.16");
testMap.put("Mime", "text/html");
System.out.println(mapToString(testMap));

// 分割符为|,并去掉得到元素的前后空白
String str = "hello | world | your | Name ";
List<String> ss = getListByStr("|", str);
for (String it : ss) {
System.out.println(it);
}

// 判断是否空
System.out.println(Strings.isNullOrEmpty(""));

// Preconditions.checkArgument(false, "你错了");

Person person1 = new Person(30);
Person person2 = new Person(32);
Person person3 = new Person(33);
Person person4 = new Person(34);
List<Person> personList = Lists.newArrayList(person1, person2, person3,person4);
// 过滤年龄大于等于32的person
Iterable<Person> personsFilteredByAge = FluentIterable.from(personList).filter(new Predicate<Person>() {
@Override
public boolean apply(Person input) {
return input.getAge() > 31;
}
});
// Iterable有一个iterator方法,集合类都有一个Iterator方法
for (Iterator<Person> it = personsFilteredByAge.iterator(); it.hasNext();) {
System.out.println(it.next());
}

System.out.println(Iterables.contains(personsFilteredByAge, person2));

System.out.println(isListContainsObject(personList, person3));
}
}

class Person {

private int age;

public Person(int age) {
super();
this.age = age;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值