`

java Guava工具集学习(强大)

    博客分类:
  • java
 
阅读更多


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

}





分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Guava-18.0是一个功能强大的Java库,用于简化Java编程和提高代码质量

    Guava-18.0是一个功能强大的Java库,主要用于简化Java编程和提高代码质量。通过使用Guava-18.0提供的各种实用工具和功能,开发人员可以更快速地编写可靠、可维护的代码,并减少错误和漏洞的出现。Guava-18.0适用于...

    Guava 16.0 API (CHM格式)

    Powerful collection utilities(强大的集合工具类): java.util.Collections 中未包含的常用操作工具类  4. Extension utilities(扩展工具类): 给 Collection 对象添加一个装饰器? 实现迭代器? 我们可以更容易...

    guava-18.0.rar

    最新下载,亲测可用 Guava 是一个 Google 的基于java1.6的类库集合的扩展项目 guava-18.0.jar 强大的java工具类库

    JAVA上百实例源码以及开源项目源代码

    Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密  WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件...

    JAVA上百实例源码以及开源项目

    Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密  WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件...

    notes-learning-guava:guava学习笔记

    Guava学习笔记笔记的大部分中文翻译内容来源于以下译者: ...在此,我们希望通过此文档为Guava中最流行和最强大的功能,提供更具可读性和解释性的说明。目录#1.基本工具让使用Java语言变得更舒适1.1 使用和避免null:nu

    google-guava

    Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] ...

    java开源包4

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包11

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包101

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包6

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包9

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包5

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包8

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包10

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包1

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包3

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    guava16.0 chm文档

     com.google.common.cache:缓存工具包,非常简单易用且功能强大的JVM内缓存。  com.google.common.collect:带泛型的集合接口扩展和实现,以及工具类,这里你会发现很多好玩的集合。  ...

    java开源包2

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

    java开源包7

    JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java对象集进行查询,排序,分组。 搜索自动提示 Autotips AutoTips是为解决应用系统对于...

Global site tag (gtag.js) - Google Analytics