`
sunxboy
  • 浏览: 2883797 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Google Guava 用法

 
阅读更多

EvictingQueue 
  这个是一个非阻塞的队列,当队列长度满了后,自动移除头元素,比如: 
  EvictingQueue<String> q = EvictingQueue.create(3); 
q.add("one"); 
q.add("two"); 
q.add("three"); 
q.add("four"); 
// the head of the queue is evicted after adding the fourth element 

 

fileTreeTraverser 文件遍历递归利器 
   这个方法可以快速遍历某个文件目录下的所有文件,比如: 
FluentIterable<File> iterable = Files.fileTreeTraverser().breadthFirstTraversal(new File("/var/tmp")); 
for (File f : iterable) { 
    System.out.println(f.getAbsolutePath()); 

其中f.getAbsolutePath()用的是jdk 7中的方法

 

Google Guava Splitter

 

Splitter niceCommaSplitter = Splitter.on(',') .omitEmptyString().trimResults();
niceCommaSplitter.split("one,, two,  three"); //"one","two","three"
niceCommaSplitter.split("  four  ,  five  "); //"four","five"

 

 

Guava中Joiner的用法: 

 

int[] numbers = { 1, 2, 3, 4, 5 };  
String numbersAsStringDirectly = Ints.join(";", numbers);  

 

 

Guava中Splitter的用法:

 

String testString = "foo , what,,,more,";  
Iterable<String> split = Splitter.on(",").omitEmptyStrings().trimResults().split(testString); 

 

 

set的交集, 并集, 差集的用法

 

HashSet setA = newHashSet(1, 2, 3, 4, 5);
HashSet setB = newHashSet(4, 5, 6, 7, 8);
 
SetView union = Sets.union(setA, setB);
System.out.println("union:");
for (Integer integer : union)
    System.out.println(integer);       
 
SetView difference = Sets.difference(setA, setB);
System.out.println("difference:");
for (Integer integer : difference)
    System.out.println(integer);      
 
SetView intersection = Sets.intersection(setA, setB);
System.out.println("intersection:");
for (Integer integer : intersection)
    System.out.println(integer);

 

 

针对Map的用法: 

 

MapDifference differenceMap = Maps.difference(mapA, mapB);

differenceMap.areEqual();
Map entriesDiffering = differenceMap.entriesDiffering();
Map entriesOnlyOnLeft = differenceMap.entriesOnlyOnLeft();
Map entriesOnlyOnRight = differenceMap.entriesOnlyOnRight();
Map entriesInCommon = differenceMap.entriesInCommon();

 

 

验证与条件检查 

 

public PostExample(final String title, final Date date, final String author) {  
    this.title = checkNotNull(title);  
    this.date = checkNotNull(date);  
    this.author = checkNotNull(author);  
}

 

 

针对集合中只有一个元素的情况: 
Iterables.getOnlyElement(); 
这个主要是用来替换Set.iterator.next()或 List.get(0), 而且在测试中使用非常方便, 如果出现0个或者2+则直接抛出异常 

 

ImmutableList.copyOf的用法:

 

public Directions(Address from, Address to, List<Step> steps) {  
  this.from = from;  
  this.to = to;  
  this.steps = ImmutableList.of(steps);  
}

 

 

equals和hashcode的用法: 

  public boolean equals(Object o) {
    if (o instanceof Order) {
      Order that = (Order)o;

      return Objects.equal(address, that.address)
          && Objects.equal(targetArrivalDate, that.targetArrivalDate)
          && Objects.equal(lineItems, that.lineItems);
    } else {
      return false;
    }
  }

  public int hashCode() {
    return Objects.hashCode(address, targetArrivalDate, lineItems);
  }

 

分享到:
评论

相关推荐

    Google Guava 官方教程

    这个官方教程将深入探讨这些关键特性和使用方法。 1. **集合框架增强** Guava 提供了丰富的集合类,如 Multiset(多集)、Multimap(多映射)和 Table(表格)。它们允许开发者处理更复杂的数据结构。例如,...

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

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

    Getting Started with Google Guava

    书中还提到了一些重要的知识点,比如Guava库中提供的各种工具类和方法,以及如何在项目中使用Guava的集合框架来处理常见的数据结构问题,例如使用不可变集合、集合工具类和集合的辅助函数等。此外,书中还可能涉及了...

    google guava 中文教程

    本教程将深入探讨Guava库中的核心特性和使用方法。 一、集合框架扩展 Guava提供了对Java集合框架的增强,包括新的集合类型如Multiset(多集)、Multimap(多映射)和Immutable集合(不可变集合)。这些集合类型...

    google开源项目guava.jar包

    谷歌的Guava库是Java开发中的一个非常重要的开源项目,它提供了一系列的高效、实用的工具类,大大简化了常见的编程任务。...在使用时,只需将此jar包添加到项目的类路径中,即可享受到Guava带来的便利。

    guava-20.0-API文档-中文版.zip

    赠送jar包:guava-20.0.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    guavapdf-ch_GoogleGuava官方教程_

    Google Guava 是一个开源库,为Java开发人员提供了一组核心库,包括集合、缓存、并发工具、I/O工具、字符串处理、实用方法等。这个官方教程主要针对Guava库的使用进行详细介绍,帮助开发者更有效地利用Guava来优化...

    Getting Started with Google Guava code

    1. 从官方文档开始,了解每个模块的功能和使用方法。 2. 阅读和分析示例代码,理解 Guava 工具类的用法。 3. 在实际项目中逐步引入 Guava 功能,替换传统代码,感受性能和可读性的提升。 4. 参与社区讨论,解决遇到...

    Google Guava

    这些内容的介绍使读者能够在阅读的同时掌握Guava库的实际使用方法,从而直接在自己的项目中应用。 此外,书籍中提到了Guava库所遵循的一些最佳实践,比如对于不可变集合的使用和如何利用Guava提供的工具类来处理...

    Google Guava 多版本集合

    Guava是一种基于开源的Java库,其中包含谷歌正在由他们很多项目使用的很多核心库。这个库是为了方便编码,并减少编码错误。这个库提供用于集合,缓存,支持原语,并发性,常见注解,字符串处理,I/O和验证的实用方法...

    com.google.guava_1.6.0.jar.zip

    在Java编程中,Google Guava库是一个不可或缺的工具集合,它提供了大量的高效、实用的类和方法,极大地提升了开发效率。本次我们将聚焦于Guava中的`Ints`模块,通过分析`com.google.guava_1.6.0.jar.zip`这个压缩包...

    google-guava.jar

    《谷歌Guava库详解》 谷歌Guava,全称为Google Guava,是Google推出的一款Java库,它包含一系列基础工具类,旨在简化Java开发工作,提高代码效率和可维护性。Guava的核心特性包括集合框架、缓存、原始类型支持、...

    guava-17.0-API文档-中文版.zip

    赠送jar包:guava-17.0.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    Getting Started with Google Guava.pdf

    Google Guava 是一个由Google提供的开源Java库,它包含了许多强大的工具类和集合类,这些类可以帮助开发者更高效地编写Java代码。Guava的目标是提供一种更加简洁、优雅的方式来处理常见的编程任务,并且在很多情况下...

    guava-23.0-API文档-中文版.zip

    赠送jar包:guava-23.0.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    谷歌guava的jar包和源码,值得收藏

    谷歌Guava库是一个广泛使用的Java库,它提供了许多核心库的实用工具类,包括集合、缓存、并发、I/O、字符串处理、泛型 utilities、错误处理、网络、数学运算以及类加载器支持等多个方面。Guava的目标是使Java编程...

    guava-18.0-API文档-中文版.zip

    赠送jar包:guava-18.0.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    Google Guava 30.1.1常用类介绍及实践代码

    以上只是 Guava 30.1.1 版本中的一部分核心功能,实际使用中还有许多其他实用工具类,如 `Range`, `EventBus`, `RateLimiter` 等。Guava 的设计目标是提高代码质量和效率,通过提供这些工具类,开发者可以更加专注于...

    guava-11.0.2-API文档-中文版.zip

    赠送jar包:guava-11.0.2.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    guava-23.0.zip guava.jar guava

    Guava是Google开发的一个核心库,它为Java平台提供了许多实用工具类,极大地简化了常见的编程任务。在标题和描述中提到的"guava-23.0.zip"是一个包含Guava库版本23.0的压缩文件,而"guava.jar"则是Guava库的JAR文件...

Global site tag (gtag.js) - Google Analytics