`

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

}





分享到:
评论
发表评论

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

相关推荐

    java集合分组(Guava)

    Guava是Google推出的一个强大的Java工具包,其中的Multiset、Multimap和GroupingBy等功能提供了高级的集合操作,特别是对于集合的分组功能,它提供了一种高效且灵活的方式。 首先,我们需要理解Guava中的`...

    guava学习知识点

    Guava 是 Google 开源的一个 Java 工具包...Guava 的这些特性使得开发者能更高效、安全地编写代码,同时提供了一套强大的工具集,可以应对各种复杂场景。学习并掌握 Guava,将极大地提升 Java 开发的生产力和代码质量。

    Google的guava实战

    Google的Guava是Java开发中一个非常强大的工具库,它由Google工程师开发并维护,提供了一套丰富的Java实用工具集合。Guava的目的是为了简化Java编程,减少代码冗余和提升代码质量。Guava中包含的工具种类繁多,涵盖...

    Guava Source Code 22.0

    总结起来,Guava 22.0是一个功能强大的Java库,它的各种工具和组件极大地提高了开发效率,优化了代码质量。通过深入理解并合理运用Guava,开发者能够构建出更加健壮、高效的应用程序。在实际开发中,Guava不仅适用于...

    java&guava讲义.pptx

    Java & Guava 讲义 Java 基础知识点: * Java 编译过程:Java 编译...该讲义涵盖了 Java 基础知识、Guava 框架的设计理念和使用、Java 集合框架的实现细节等多方面的内容,为学习Java和Guava提供了系统的知识架构。

    guava(google的java集合包)

    Guava是Google为Java平台...Guava的这些特性使其成为许多Java项目中的首选库,它不仅丰富了Java的工具箱,还提供了很多现代编程的最佳实践。在实际开发中,合理利用Guava可以提高代码质量,减少错误,并提升应用性能。

    使用google guava 实现定时缓存功能

    在IT行业中,Google Guava库是一个非常强大的工具集,它为Java开发人员提供了一系列实用的集合、缓存、并发和I/O工具。本篇文章将详细探讨如何利用Guava库实现定时缓存功能,以提高应用的性能和效率。 首先,Guava...

    Guava是个风火轮之基础工具(3)Java开发Java经

    总而言之,《Guava是个风火轮之基础工具(3)Java开发Java经》这份资料全面地介绍了Guava在Java开发中的各种应用场景,无论是集合处理、缓存管理、函数式编程,还是并发和安全控制,都为我们提供了强大的工具和实践...

    guava-18.0(guava-18.0.jar和guava-18.0-sources.jar)

    总之,Guava库是Java开发者的强大工具,无论是在大型项目还是小型项目中,都能发挥出重要的作用。18.0版本的Guava在保持高效和稳定的同时,也提供了丰富的功能和优化,使得开发者能够更加便捷地处理常见的编程任务。...

    guava-23.0.zip guava.jar guava

    1. **集合框架**:Guava提供了丰富的集合类,如Multiset(多集)、Multimap(多映射)、ImmutableCollection(不可变集合)等,这些集合类具有更好的性能和功能,比Java内置的集合类更为强大。 2. **缓存机制**:...

    guava-19.0 jar和sources

    总结来说,Guava-19.0的这两个jar文件以及对应的sources.jar,为Java开发者提供了强大的工具集,不仅可以在常规Java项目中使用,也能很好地适应GWT的开发需求。源码的提供使得学习和定制变得更加容易,是Java开发中...

    Guava是个风火轮之基础工具(1)Java开发Java经

    在这个文档"Guava是个风火轮之基础工具(1)Java开发Java经验技巧共7页.pdf.zip"中,我们有望深入学习到Guava的核心特性以及在实际开发中的应用技巧。 首先,Guava的集合框架提供了许多扩展和增强的集合类型,如...

    guava-26.0-jre.zip

    9. **IO工具**:Guava提供了Files、CharStreams、ByteStreams等类,对Java标准IO进行了扩展,提供了更强大的读写操作和文件系统操作。 10. **时间与日期处理**:Guava提供了Date数学、TimeMath和ChronoUnit等类,以...

    guava-18.0.rar

    Guava是Google开发的一个核心库,它包含了众多Java平台的高效、强大且实用的工具类。这个"guava-18.0.rar"压缩包包含了Guava库的18.0版本,对于开发者来说,这是一个非常重要的资源。Guava的核心特性在于对Java集合...

    google开源项目guava.jar包

    谷歌的Guava库是Java开发中的一个非常重要的开源项目,它提供了一系列的高效、实用的工具类,大大简化了常见的编程任务。Guava的核心特性包括集合框架、缓存、原生类型支持、并发库、字符串处理、I/O操作等。这个...

    guava-use:使用谷歌guava工具包

    标题中的“guava-use:使用谷歌guava工具包”表明我们即将探讨的是Google提供的Guava库,这是一个广泛使用的Java库,包含了许多实用的工具类和集合框架的扩展。Guava库旨在提高Java开发的效率,提供了如缓存、并发...

    Java常用工具类

    Java常用工具类是Java开发中不可或缺的一部分,它们提供了一系列便捷的方法,帮助开发者高效地处理各种常见任务。在Java中,最著名的工具类库是`java.util`包,它包含了大量实用类,如集合、日期时间、数学计算、...

    google guava 中文教程

    **正文** Google Guava是Google开发的一个开源Java库,它包含了一系列高级且实用的集合类、缓存机制、并发工具、字符串处理、I/O...在实际工作中,根据项目需求选择合适的Guava工具,可以显著提升软件性能和可扩展性。

    GuavaGoogle的Java核心库

    Guava是Google为Java开发者提供的一套强大的核心库,它极大地丰富了Java的标准库功能,尤其是在集合、缓存、并发编程、基本类型支持、注解处理、字符串操作以及输入/输出(I/O)等方面。Guava的目标是提高Java开发者的...

    Guava 工程项目包 有实例

    - **集合框架**:Guava 提供了丰富的集合类,如 Multiset(多集)、Multimap(多映射)、ImmutableCollection(不可变集合)等,它们扩展了 Java 集合框架,提供了更强大和灵活的数据结构。 - **缓存**:Guava ...

Global site tag (gtag.js) - Google Analytics