`
michael.geng
  • 浏览: 3037 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

guava 使用总结

    博客分类:
  • java
阅读更多
guava 是google工程师开源的java工具包,里面包括了大量常用及好用的工具总结,谷歌的内部工程师也在大量使用。
guava主要包括这些包:
    base              基本的工具类与接口
    io                 io流相关的工具类与方法
    net               网络地址相关的工具类与方法
    primitives        原始类型的工具类
    collect           通用集合接口与实现,与其集合相关工具类
    util.concurrent 并发相关工具类

字符串:
Splitter.on(',').split("a,b");
	Splitter.on(',').trimResults().split("a , b");
	Splitter.on(',').omitEmptyStrings().split("a,,b");
	Strings.isNullOrEmpty("")
	Strings.repeat("java", 3)
	Assert.assertEquals("2011-08-04", Joiner.on("-").join("2011", "08", "04"));  

链式操作:
String s = Joiner.on(“,”).skipNulls().join(new int[]{2,3,4});//将int数组拼成字符串
	String s = Joiner.on(“;”).withKeyValueSeparator(“|”).join(userIdNameMap);//针对map的

CaseFormat :
	Assert.assertEquals("HELLO_GUAVA", CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, "helloGuava"));
	Assert.assertEquals("HelloGuava", CaseFormat.LOWER_HYPHEN.to(CaseFormat.UPPER_CAMEL, "hello-guava"));


文件操作:
Files.copy(from,to);
	Files.deleteDirectoryContents(File directory); //删除文件夹下的内容(包括文件与子文件夹)  
	Files.deleteRecursively(File file); //删除文件或者文件夹  
	Files.move(File from, File to); //移动文件 

Preconditions :
Preconditions.checkArgument(count > 0, "must be positive: %s", count); //判断 抛异常



Resources提供了针对classpath下资源操作的工具方法 :
    URL url = Resources.getResource("config.xml"); //获取classpath根下的config.xml文件url

Guava新增了一个概念,叫做 不可变集合,ImmutableCollection:
Map params = ImmutableMap.of(“name”, “zhangsan”, “age”, 20);


非常实用的一个API: MapDifference<K, V> diff = Maps.difference(Map<K, V> left, Map<K, V> right); 之后可以调用
diff.entriesOnlyOnLeft() // 获得只在左集合有的部分
diff.entriesOnlyOnRight() // 获得只在右集合有的部分
diff.entriesInCommon() // 获得交集部分

Guava新增了一个概念,叫做BiMap,双向Map,比如说我需要一个Map,可以根据用户ID找到用户昵称,还可以根据用户昵称查找用户ID,这时就可以用到双向Map了。

Multiset,可以对每个元素进行计数,通俗点讲,Multiset<E>就相当于Map<E, Integer>
0
0
分享到:
评论

相关推荐

    guava-19.0 jar和sources

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

    不加密Google Guava视频教程.txt

    ├─Google Guava 第14讲-Guava之Closer使用和原理剖析,非常重要.wmv ├─Google Guava 第15讲-Base64原理详解,手动实现base64的Encoding.wmv ├─Google Guava 第16讲-Base64原理详解,手动实现base64的...

    Google的guava实战

    总结来看,Guava库通过提供各种实用工具类和接口,极大地丰富了Java语言的功能,使得Java开发者能够更专注于业务逻辑的实现,而不是重复造轮子。因此,对于Java开发者而言,掌握Guava库的使用是一项非常有价值的技能...

    mahout的guava-r09-jar

    在Mahout中使用Guava-r09-jar,可以实现以下关键功能: 1. **数据容器与集合**:Guava提供了强类型的List、Set和Map实现,以及Multiset、Multimap和Table等高级容器,使得数据组织和操作更加灵活和高效。 2. **...

    Guava-CacheDemo.rar

    Guava Cache是Google Guava库中的一...总结,Guava Cache是一个强大的本地缓存解决方案,提供了丰富的配置选项和便捷的操作接口。通过学习和熟练使用Guava Cache,开发者可以更好地优化应用程序的性能,提升用户体验。

    Guava Source Code 22.0

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

    Google-Guava-Collections-使用介绍

    ### Google Guava Collections 使用介绍 #### 一、概述 Google Guava Collections 是 Java Collections Framework 的一个强大且实用的非官方扩展 API。它由 Google 工程师 Kevin Bourrillion 和 Jared Levy 在著名...

    google-guava.jar

    总结来说,Google Guava库是一个强大的Java开发工具,它不仅提升了Java开发的便利性和效率,而且在并发处理、数据结构、I/O操作等方面提供了丰富的解决方案。对于任何Java开发者来说,深入理解和熟练使用Guava都是...

    Getting start with guava

    #### 六、总结 通过本文介绍,我们了解到Google Guava库的强大功能及其在实际开发中的应用。Guava不仅提供了丰富的工具类,还极大地方便了Java开发者的日常工作。无论是集合操作、缓存管理还是并发编程,Guava都能...

    Spring Retry 和 Guava Retrying重试机制的使用详解

    总结来说,Spring-Retry和Guava Retrying都是解决分布式系统中重试问题的有效工具。选择哪一个取决于项目的需求、技术栈和团队的熟悉程度。在实际应用中,应根据具体场景权衡两者之间的优缺点,以实现最佳的系统健壮...

    guava学习笔记

    总结来说,Guava工具包为Java开发者提供了大量实用的功能,涵盖了字符串处理、集合操作、参数校验等多个方面。通过上述几个核心类的介绍,我们可以看到Guava在简化代码编写、提高代码质量方面的显著作用。对于Java...

    Guava-Cache-Demo:演示如何使用 Guava 缓存

    总结来说,`Guava-Cache-Demo` 展示了如何利用 Guava Cache 实现高效的数据缓存,通过将 Google Books API 的调用结果缓存起来,减少了不必要的网络延迟,提高了应用程序的响应速度。通过定制缓存的过期策略、最大...

    基于Zookeeper和guava动态限流 源码

    总结来说,结合Zookeeper和Guava实现的动态限流方案,提供了灵活性和可扩展性,能够适应不断变化的系统需求。通过对"基于Zookeeper和guava动态限流 源码"的深入研究,开发者不仅可以了解这一技术的实现细节,还可以...

    assertj-guava:AssertJ Guava是特定于Guava类型(如Multimap,Optional或Table)的断言库

    对于任何使用Guava库的项目,尤其是那些包含复杂数据结构的项目,集成AssertJ Guava能够极大地提升测试的质量和效率。通过深入理解和熟练使用这个库,开发者可以更好地保证代码的稳定性和可靠性。

    GuavaDemo:使用Guava库的演示

    **Guava库简介** Guava是Google开源的一..."GuavaDemo-master"这个压缩包很可能是包含了使用Guava进行演示的代码实例,可以作为学习Guava的起点,通过分析和运行这些示例,你可以更直观地了解Guava的各种特性和用法。

    springbt_guava_cache.7z

    总结,Spring Boot结合Guava Cache能有效提升Web应用的性能,通过合理配置和策略优化,可以应对各种复杂场景。在实际开发中,我们需要根据业务需求,灵活运用这些工具和技巧,构建出高效、稳定的缓存系统。

    guava不可修改集合

    总结来说,Guava提供的不可修改集合为Java开发者提供了一种方便、线程安全的方式来处理集合数据。它们在多线程环境下特别有用,可以避免复杂的同步问题。Guava库中还包含了许多其他的并发工具类,以及一系列的函数式...

    第七章 企业项目开发--本地缓存guava cache1

    总结,Guava Cache是Java开发中实现本地缓存的一个强大工具,它的灵活性和丰富的特性使得缓存管理变得高效且易于维护。在实际项目中,合理地利用Guava Cache,可以显著提升系统性能,减少不必要的I/O操作。同时,...

    83丨开源实战三(下):借GoogleGuava学习三大编程范式中的函数式编程1

    【总结】 函数式编程虽不能完全替代面向对象编程,但它提供了一种互补的编程思维方式,特别是在数据处理和流式计算等场景下,能显著提高代码的简洁性和效率。了解和掌握函数式编程,可以拓宽编程视野,提升解决问题...

Global site tag (gtag.js) - Google Analytics