/**

 * Author: momo
* Date: 2018/6/7
* Description:
*/
public class ListTest { public static void main(String[] args) {
/**List的常见用法*/ //构造list
List<Integer> list1 = Lists.newArrayList(1,2,3,4,5,6,7,8,9);
System.out.println(list1); //反转list
List<Integer> reverseList1 = Lists.reverse(list1);
System.out.println(reverseList1); //切割集合
List<List<Integer>> partition = Lists.partition(list1, 4);
partition.stream().forEach(list->System.out.println(list)); //拷贝为不可变集合
List list2 = new ArrayList();
list2.add(11);
list2.add(41);
list2.add(51);
list2.add(12);
ImmutableList immutableList = ImmutableList.copyOf(list2); //创建不可变集合
ImmutableList<Integer> imList = ImmutableList.of(1, 2, 4, 12); //获取不可变字符集合
ImmutableList<Character> asff = Lists.charactersOf("asff");
asff.stream().forEach(character -> System.out.println(character)); /**Map的常见用法*/ Map<String,Object> leftMap = ImmutableMap.of("name", "汪", "age", 18, "address", "陕西", "city", "西安","love","张");
Map<String,Object> rightMap = ImmutableMap.of("name", "张", "age", 16, "address", "陕西", "city", "西安","home","美国");
MapDifference<String, Object> deffMap = Maps.difference(leftMap, rightMap);
//相同的
Map<String, Object> map = deffMap.entriesInCommon();
System.out.println("相同的:"+map);
//同key不同value
Map<String, MapDifference.ValueDifference<Object>> stringValueDifferenceMap = deffMap.entriesDiffering();
System.out.println("同key不同value:"+stringValueDifferenceMap);
//仅仅左边有的
Map<String, Object> onlyLeft = deffMap.entriesOnlyOnLeft();
System.out.println("仅仅左边有的:"+onlyLeft);
//仅仅右边有的
Map<String, Object> onlyRight = deffMap.entriesOnlyOnRight();
System.out.println("仅仅右边有的:"+onlyRight); /**BiMap*/
BiMap<Object, Object> biMap = HashBiMap.create();
biMap.put("张三",54);
biMap.put("李四",23);
biMap.put("程思",33);
biMap.put("吴楠",16); //key相同value不同,后面的会覆盖前面的
biMap.put("吴楠",46);
//启动程序会报错 java.lang.IllegalArgumentException: value already present: 23
//biMap.put("张刚",23);
//强行添加,会覆盖
//biMap.forcePut("张刚",23);
System.out.println(biMap); //反转 key和value反转
BiMap<Object, Object> inverseMap = biMap.inverse();
System.out.println(inverseMap); }
}

结果:

[1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1]
[1, 2, 3, 4]
[5, 6, 7, 8]
[9]
a
s
f
f
相同的:{address=陕西, city=西安}
同key不同value:{name=(汪, 张), age=(18, 16)}
仅仅左边有的:{love=张}
仅仅右边有的:{home=美国}
{张三=54, 李四=23, 程思=33, 吴楠=46}
{54=张三, 23=李四, 33=程思, 46=吴楠}

初始化

Map<String, String> statusMap = ImmutableMap.<String, String>builder()
.put("1", "待签署")
.put("2", "签署中")
.put("3", "已签署")
.put("4", "已拒签")
.put("5", "已过期")
.put("6", "已撤销")
.put("7", "待填写")
.put("8", "填写中")
.build();

Google Guava 常用集合方法的更多相关文章

  1. guava常用集合交集,差集,并集,补集操作

    <!-- https://mvnrepository.com/artifact/com.google.guava/guava --> <dependency> <grou ...

  2. [Google Guava] 2.3-强大的集合工具类:java.util.Collections中未包含的集合工具

    原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.G ...

  3. [Google Guava] 2.1-不可变集合

    范例 01 public static final ImmutableSet<String> COLOR_NAMES = ImmutableSet.of( 02 "red&quo ...

  4. [Google Guava] 1.3-常见Object方法

    原文链接 译者: 沈义扬 equals 当一个对象中的字段可以为null时,实现Object.equals方法会很痛苦,因为不得不分别对它们进行null检查.使用Objects.equal帮助你执行n ...

  5. 大数据学习day15----第三阶段----scala03--------1.函数(“_”的使用, 函数和方法的区别)2. 数组和集合常用的方法(迭代器,并行集合) 3. 深度理解函数 4 练习(用java实现类似Scala函数式编程的功能(不能使用Lambda表达式))

    1. 函数 函数就是一个非常灵活的运算逻辑,可以灵活的将函数传入方法中,前提是方法中接收的是类型一致的函数类型 函数式编程的好处:想要做什么就调用相应的方法(fliter.map.groupBy.so ...

  6. (转)Android之常用功能方法大集合

    这些,都是Andorid中比较常用的方法和功能,在网上搜集整理一下记录之,以备不时之需.由于经过多次转载,源文作者不确凿,在此申明,敬请见谅.不得不赞,非常实用. 1.判断sd卡是否存在 boolea ...

  7. 常用的方法,读取XML节点并赋值给List集合

    一.前言 很多时候也可以直接在XML文件中配置好节点,在程序需要用到的时候,修改XML文件并不需要重新编译,这里是在极光推送中拿出来的一部分代码.代码简单,大家直接看例子吧. 二.实现过程 1.新创建 ...

  8. 大数据学习day13------第三阶段----scala01-----函数式编程。scala以及IDEA的安装,变量的定义,条件表达式,for循环(守卫模式,推导式,可变参数以及三种遍历方式),方法定义,数组以及集合(可变和非可变),数组中常用的方法

    具体见第三阶段scala-day01中的文档(scala编程基础---基础语法)  1. 函数式编程(https://www.cnblogs.com/wchukai/p/5651185.html): ...

  9. guava常用操作

    Jack47 我思故我在 Google Java编程库Guava介绍 本系列想介绍下Java下开源的优秀编程库--Guava[ˈgwɑːvə].它包含了Google在Java项目中使用一些核心库,包含 ...

随机推荐

  1. virtualbox + vagrant 安装centos7 以及 vagrant up下载太慢的解决方案

    下载安装 virtualbox下载 vagrant下载 下载启动镜像vagrant up有下载过慢的问题,可以到网页vagrant镜像仓库,找到自己需要的镜像,选择virtualbox版本下载 下载好 ...

  2. sqlalchemy delete object

    In SQL Alchemy you are deleting Objects that you get with a query from the database. This you can do ...

  3. Spring Boot 面试总结

    1.使用 Spring Boot 前景? 多年来,随着新功能的增加,spring变得越来越复杂.只需访问https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用 ...

  4. Part 18 $http service in AngularJS

    In Angular there are several built in services. $http service is one of them. In this video, we will ...

  5. 菜鸡的Java笔记 第十四 String 类常用方法

    /*String 类常用方法    将所有String类的常用方法全部记下来,包括方法名称,参数作用以及类型    一个成熟的编程语言,除了它的语法非常完善之外,那么也需要提供有大量的开发类库     ...

  6. 多云搭建 K3S 集群

    作者:SRE运维博客 博客地址: https://www.cnsre.cn/ 文章地址:https://www.cnsre.cn/posts/211119132529/ 相关话题:https://ww ...

  7. 「3dmax」快速配置3DMax

    3DMax学习 1.0.认识3dmax 3dmax(3D Studio Max),版权Autodesk公司持有.是基于PC系统的三维动画渲染和制作软件,主要用于模型构建和骨骼动画制作.行业使用分布广泛 ...

  8. [hdu5629]Clarke and tree

    首先由一个神奇的序列叫做Purfer序列,他可以表示一棵树,且每个节点出现此时为度数-1(因此总长为n-2). 然后dp,用f[i][j][k]表示用前i个点中的j个点构成了一个长度为k的Purfer ...

  9. [ccKILLKTH]Killjee and k-th letter

    建立后缀树(即反序插入字符串的parent树),然后可以发现按照dfs序排列满足其反串按字典序从小到大排列,那么就可以维护出每一刻子树的串长和,然后直接在dfs序上二分确定节点,再在节点内部乱搞即可求 ...

  10. [loj2136]地震后的幻想乡

    考虑kruskal的过程:对$n$条边随机排列(排序),令$k$表示前$k$条边恰好能使图联通,根据题目的提示,即$E(\frac{k}{m+1})=\frac{E(k)}{m+1}$ 设$p(k)$ ...