当前位置: 首页 > news >正文

网站建设发展的前景辽宁建设工程信息网价格查询

网站建设发展的前景,辽宁建设工程信息网价格查询,heritrix做网站,网站热销榜怎么做一、概述 Guava是一组来自Google的核心Java库,包括新的集合类型(如多映射和多集)、不可变集合、图库和并发、I/O、哈希、原语、字符串等实用程序!它广泛用于Google中的大多数Java项目,也被许多其他公司广泛使用。 Gua…

一、概述

Guava是一组来自Google的核心Java库,包括新的集合类型(如多映射和多集)、不可变集合、图库和并发、I/O、哈希、原语、字符串等实用程序!它广泛用于Google中的大多数Java项目,也被许多其他公司广泛使用。
Guava 开发要求 :
JRE风格需要JDK 1.8或更高版本。
如果您需要支持Android,请使用Android风格。您可以在Android目录中找到Android Guava源代码。

guava github 开源地址:GitHub - google/guava: https://github.com/google/guava

官网用户手册:https://github.com/google/guava/wiki

guava 的Maven groupID是com.google.Guava,其artifact ID是guava 。Guava提供了两种不同的“风格”:一种用于(Java 8+)JRE,另一种用于Android或任何希望与Android兼容的库。这些口味在Maven版本字段中指定为32.1.2-jre或32.1.2-安卓。 

com.google.guava 依赖:

<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>32.1.2-jre</version><!-- or, for Android: --><version>32.1.2-android</version>
</dependency>

二、使用Guava

Guava项目包含我们在基于Java的项目中依赖的几个Google核心库:集合、缓存、原语支持、并发库、通用注释、字符串处理、I/O等。这些工具中的每一个确实每天都被谷歌人用于生产服务。
但浏览Javadoc并不总是学习如何最好地利用库的最有效方法。

基本使用: 

  • 使用和避免null:null可能是模棱两可的,可能会导致令人困惑的错误,有时只是令人不快。许多Guava公用事业拒绝并在空值上快速失败,而不是盲目接受它们。
  • 先决条件:更容易地测试方法的先决条件。
  • 通用对象方法:简化object方法的实现,如hashCode()和toString()。
  • Ordering:Guava强大的“流畅比较器”类。
  • Throwables:简化传播和检查异常和错误。

Collections:Guava对JDK收藏生态系统的扩展。这些是番石榴最成熟和最受欢迎的部分。

  • 不可变集合,用于防御编程、常量集合和提高的效率。
  • 新的集合类型,用于JDK集合不能很好地处理的用例:多集合、多映射、表、双向映射等。
  • 强大的收集实用程序,用于java.util.Collections中未提供的常见操作。
  • 扩展实用程序:编写集合装饰器?实现迭代器?我们可以让这变得更容易。

:用于建模图结构数据的库,即实体及其之间的关系。主要功能包括: 

  • 图:其边是匿名实体的图,没有自己的标识或信息。
  • ValueGraph:其边具有关联的非唯一值的图。
  • 网络:其边是唯一对象的图。
  • 支持可变和不可变、有向和无向的图以及其他几个属性。

缓存:本地缓存,处理得当,并支持各种过期行为。
功能习语:谨慎使用,Guava的功能习语可以显著简化代码。
并发:强大、简单的抽象,使编写正确的并发代码变得更容易 

  • ListenableFuture:Futures,完成时回调。
  • 服务:启动和关闭的东西,为您处理困难的状态逻辑。

String :一些非常有用的字符串实用程序:拆分、连接、填充等。
Primitive :JDK不提供的对基本体类型(如int和char)的操作,包括某些类型的无符号变体。
范围:Guava强大的API,用于处理可比较类型的范围,包括连续和离散。
I/O:简化了Java 5和6的I/O操作,特别是在整个I/O流和文件上。
哈希:用于比Object.hashCode()提供的更复杂哈希的工具,包括Bloom过滤器。
EventBus:在组件之间发布订阅样式的通信,而不要求组件彼此显式注册。
Math:JDK未提供的优化、经过彻底测试的数学实用程序。
反射:用于Java反射功能的Guava实用程序。 

三、不可变集合

1、例子

public static final ImmutableSet<String> COLOR_NAMES = ImmutableSet.of("red","orange","yellow","green","blue","purple");class Foo {final ImmutableSet<Bar> bars;Foo(Set<Bar> bars) {this.bars = ImmutableSet.copyOf(bars); // defensive copy!}
}

2、不可变集合优点

不可变对象具有许多优点,包括:

  1. 不受信任的库可以安全使用。
  2. 线程安全:可以由许多线程使用,没有竞争条件的风险。
  3. 不需要支持突变,并且可以通过该假设节省时间和空间。所有不可变集合实现都比其可变同级更节省内存。(分析)
  4. 可以用作常量,预期它将保持固定。

3、不可变集合使用

ImmutableXXX集合可以通过几种方式创建:

  • 使用copyOf方法,例如ImmutableSet.copyOf(set)
  • 使用of方法,例如,ImmutableSet.of(“a”,“b”,“c”)或ImmutablesMap.of((“a”,1,“b”,2)
  • 例如,使用生成器, 
public static final ImmutableSet<Color> GOOGLE_COLORS =ImmutableSet.<Color>builder().addAll(WEBSAFE_COLORS).add(new Color(0, 191, 255)).build();

 Guava 为 java jdk 每种标准集合类型提供了简单易用的不可变版本,包括 Guava 自己的集合变体,为 java 提供的不可变版本都是继承 java jdk 的接口而来,所以操作上基本无异。下面接口的实现类也都有对应的不可变版本。

Interface

JDK or Guava?

Immutable Version

Collection

JDK

ImmutableCollection

List

JDK

ImmutableList

Set

JDK

ImmutableSet

SortedSet/NavigableSet

JDK

ImmutableSortedSet

Map

JDK

ImmutableMap

SortedMap

JDK

ImmutableSortedMap

Multiset

Guava

ImmutableMultiset

SortedMultiset

Guava

ImmutableSortedMultiset

Multimap

Guava

ImmutableMultimap

ListMultimap

Guava

ImmutableListMultimap

SetMultimap

Guava

ImmutableSetMultimap

BiMap

Guava

ImmutableBiMap

ClassToInstanceMap

Guava

ImmutableClassToInstanceMap

Table

Guava

ImmutableTable

http://www.yayakq.cn/news/910253/

相关文章:

  • 外贸免费网站建设网站运营模式
  • wordpress 付费主题谷歌广告优化
  • 加盟手机网站源码网站建设美文
  • 企业网站建设系统常德建设网站
  • 手机网站图片切换色系网站
  • 文库网站怎么做seo优秀答辩ppt范文10页
  • 什么是移动网站开发网站开发中心
  • 千瓜数据更换模板对网站seo的影响
  • 域名绑定网站提示正在建设app免费开发
  • node.js 做网站网络整合营销传播
  • 免费建网站家谱系统电子商务网站建设李洪心课后答案
  • 做网站美工的理由wordpress安装 503
  • 被称为网站开发神器网站页面设计制作费
  • 临清网站制作公司松江做网站的公司
  • 自己做电视视频网站吗红酒购物网站源码
  • 九江县网站建设一般通过什么来进行知识点挖掘
  • tp框架做视频网站兴宁网站建设设计
  • 图片交易网站如何建设做网站上传图片多大合适
  • wordpress 架站响应式网站建设好么
  • 深圳网站定制开发苏州网站建设制作工作室
  • 常州市金坛区网站建设佛山推广seo排名
  • 长春网站建设wang免费asp网站模板带后台
  • 网站规划建设心得与体会机构协会
  • 国外做游戏的视频网站旅游网站营销
  • 一台vps可以做几个网站动漫网站设计源代码
  • 无锡网站开发公司微商货源网站源码
  • 网站开发课程设计培训可以做直播的游戏视频网站
  • dwcc如何做网站附近的电脑培训班在哪里
  • 网站去哪里备案哪里有专门做网站的
  • 郑州做网站设计建设世界一流企业