java代码之美(7)---guava之Bimap】的更多相关文章

guava之Bimap bimap的作用很清晰:它是一个——映射,可以通过key得到value,也可以通过value得到key 一.概述 1.bimap和普通HashMap区别 (1)在java集合类库中的Map,它的特点是存放的键(key)是唯一的,而值(value)可以不唯一,而 bimap要求key和value都唯一,如果key不唯一则覆盖key,如果value不唯一则直接报错. 2.案例展示 public class BiMapTest { public static void main…
Java8 函数式接口 之前写了有关JDK8的Lambda表达式:java代码之美(1)---Java8 Lambda 函数式接口可以理解就是为Lambda服务的,它们组合在一起可以让你的代码看去更加简洁. 一.概念 1.什么是函数式接口 概念 所谓的函数式接口, 当然首先是一个接口, 然后就是在这个接口里面 只能有一个抽象方法. 有关函数式接口,有个专门的注解叫:@FunctionalInterface.该注解主要特点有: 1.该注解只能标记在"有且仅有一个抽象方法"的接口上,表示函…
Java8 Function.Consumer.Supplier 有关JDK8新特性之前写了三篇博客: 1.java代码之美(1)---Java8 Lambda 2.java代码之美(2)---Java8 Stream 3.java代码之美(13)--- Predicate详解 这一篇我们来了解JDK8已经定义好的几个函数式接口. 一.概述 Jdk8之后新增的一个重要的包 : java.util.function 该包下所有的接口都是函数式接口, 按分类主要分为四大接口类型: Function.…
guava之Bimap bimap的作用很清晰:它是一个一一映射,可以通过key得到value,也可以通过value得到key. 一.概述 1.bimap和普通HashMap区别 (1)在Java集合类库中的Map,它的特点是存放的键(Key)是唯一的,而值(Value)可以不唯一,而 bimap要求key和value都唯一,如果key不唯一则覆盖key,如果value不唯一则直接报错. 2.案例展示 public class bimapTest { public static void mai…
Immutable(不可变)集合 一.概述 guava是google的一个库,弥补了java语言的很多方面的不足,很多在java8中已有实现,暂时不展开.Collections是jdk提供的一个工具类. Guava中不可变对象和Collections工具类的unmodifiableSet/List/Map/etc的区别: 当Collections创建的不可变集合的wrapper类改变的时候,不可变集合也会改变,而Guava的Immutable集合保证确实是不可变的. 1.JDK中实现immuta…
guava 复写Object常用方法 Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,这个库提供用于集合,缓存,支持原语,并发性,常见注解,字符串处理,I/O和验证的实用方法. 这些高质量的 API 可以使你的Java代码更加优雅,更加简洁,让你工作更加轻松愉悦. 一.概述 在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,hashCode和toString等方法.每次写这几个方法都要做很多重复性的判断, 很多类库提供了覆…
java代码的优化 随着自己做开发时间的增长,越来越理解雷布斯说的: 敲代码要像写诗一样美.也能理解有一次面试官问我你对代码有洁癖吗? 一段好的代码会让人看就像诗一样,也像一个干净房间会让人看去很舒服. 一段好的项目代码我觉得可以用这三个维度去分析.1)性能 2)可扩展性3)可读性 有关代码的规范早在很久就有阿里巴巴的java开发手册,里面有非常多的规范.太多了,自己也没完全记住,抽空也会时不时再去翻翻. 接下来就写一些有关性能和可读性一些习惯,不全以后想到什么会再补充进来. 一.性能考虑 1.…
guava复写Object常用方法 Guava是一个Google的基于java1.6的类库集合的扩展项目,这个库提供用于集合,缓存,支持原语,并发性,字符串处理,I/O和验证的实用方法, 这些高质量的API可以使你的Java代码更加优雅,更加简洁,让你工作更加轻松愉悦 一.概述 在Java中Object类是所有类的父类,其中有几个需要override的方法比如:equals,hashCode和tostring等方法,每次写这几个方法都要做很多重复性的判断 很多类库提供了覆写这几个方法的工具类,G…
guava字符串工具 在java开发过程中对字符串的处理是非常频繁的,google的guava工具对字符串的一些处理进行优化,使我们开发过程中让自己的代码看去更加美观,清爽. 一.Joiner 根据给定的分隔符把字符串连接到一起.MapJoiner 执行相同的操作,但是针对 Map 的 key 和 value. 分析源码可知:该类构造方法被private修身,无法直接通过new实现,通过调用on传如分隔符来得到实例. 案例 public class JoinerTest { public sta…
guava之Lists.Maps 谷歌提供了guava包里面有很多的工具类,Lists和Maps集合工具,集合操作做了些优化提升. 1.概述 1.静态工厂方法 (1)Guava提供了能够推断范型的静态工厂方法 List<Person> list = Lists.newArrayList(); Map<KeyType, Person> map = Maps.newLinkedHashMap(); (2) 用工厂方法模式,我们可以方便地在初始化时就指定起始元素. Set<Type…