1、Lists

  1. //Lists
  2. System.out.println("### Lists ###");
  3. ArrayList<String> arrayList = Lists.newArrayList();
  4. arrayList.add("A");
  5. arrayList.add("B");
  6. arrayList.add("C");
  7. System.out.println(arrayList);
  8. LinkedList<String> linkedList = Lists.newLinkedList();
  9. linkedList.add("A");
  10. linkedList.add("B");
  11. linkedList.add("C");
  12. System.out.println(linkedList);
  13. System.out.println(Lists.reverse(arrayList));   //翻转集合元素的顺序
  14. System.out.println(Lists.reverse(linkedList));
  15. System.out.println(Lists.partition(arrayList, 2)); //一个集合内再分成n个子集合

2、Sets

  1. //Sets
  2. System.out.println("### Sets ###");
  3. HashSet<String> set1 = Sets.newHashSet();
  4. set1.add("A");
  5. set1.add("B");
  6. set1.add("C");
  7. LinkedHashSet<String> set2 = Sets.newLinkedHashSet();
  8. set2.add("B");
  9. set2.add("C");
  10. set2.add("D");
  11. set2.add("E");
  12. //Sets.newTreeSet();
  13. //Sets.newConcurrentHashSet();
  14. System.out.println(Sets.union(set1, set2)); //返回两个集合的并集  >> [A, B, C, D, E]
  15. System.out.println(Sets.difference(set1, set2)); //返回set1中不存在于set2的元素集合  >> [A]
  16. System.out.println(Sets.intersection(set1, set2)); //返回两个集合的交集  >> [B, C]
  17. Set<String> resultSet = Sets.filter(set2, new Predicate<String>() {
  18. @Override
  19. public boolean apply(String value) {
  20. return !"D".equals(value); //过滤掉值为D的元素  >> [B, C, E]
  21. }
  22. });
  23. System.out.println(resultSet);

3、Maps

  1. //Maps
  2. System.out.println("### Maps ###");
  3. Maps.newHashMap();
  4. Maps.newLinkedHashMap();
  5. Maps.newTreeMap();
  6. Maps.newConcurrentMap();

4、Collections2

  1. //Collections2
  2. System.out.println("### Collections2 ###");
  3. Collection<String> linkedList2 = Collections2.filter(linkedList, new Predicate<String>() {
  4. @Override
  5. public boolean apply(String value) {
  6. return !"B".equals(value); //过滤器:过滤掉值为B的元素  >> [A, C]
  7. }
  8. });
  9. System.out.println(linkedList2);
  10. Collection<String> linkedList3 = Collections2.transform(linkedList, new Function<String, String>() {
  11. @Override
  12. public String apply(String value) {
  13. return value + "_"; //转换器:元素值做特殊处理后返回  >> [A_, B_, C_]
  14. }
  15. });
  16. System.out.println(linkedList3);

Lists、Sets、Maps和Collections2的使用的更多相关文章

  1. java代码之美(9)---guava之Lists、Maps

    guava之Lists.Maps 谷歌提供了guava包里面有很多的工具类,Lists和Maps集合工具,集合操作做了些优化提升. 1.概述 1.静态工厂方法 (1)Guava提供了能够推断范型的静态 ...

  2. java代码(9) ---guava之Lists、Maps

     guava之Lists.Maps 谷歌提供了guava包里面有很多的工具类,Lists和Maps集合工具,集合操作做了些优化提升 一.概述 1.静态工厂方法 (1)Guava提供了能够推断泛型的静态 ...

  3. 005-guava 集合-集合工具类-java.util.Collections中未包含的集合工具[Maps,Lists,Sets],Iterables、Multisets、Multimaps、Tables

    一.概述 工具类与特定集合接口的对应关系归纳如下: 集合接口 属于JDK还是Guava 对应的Guava工具类 Collection JDK Collections2:不要和java.util.Col ...

  4. java成神之——集合框架之ArrayList,Lists,Sets

    集合 集合种类 ArrayList 声明 增删改查元素 遍历几种方式 空集合 子集合 不可变集合 LinkedList Lists 排序 类型转换 取交集 移动元素 删除交集元素 Sets 集合特点 ...

  5. Guava中Predicate的常见用法

    Guava中Predicate的常见用法 1.  Predicate基本用法 guava提供了许多利用Functions和Predicates来操作Collections的工具,一般在 Iterabl ...

  6. Chapter 7 -- Functional

    Caveats 说明 As of Java 7, functional programming in Java can only be approximated through awkward and ...

  7. [Java Basics] Collection

    除了Java collection class/interface外,方便的有Google guava的utility class: Lists/Sets/Maps/Queues, 用它们可以方便地创 ...

  8. Thymeleaf模板的使用

    使用模板的要点:     页面主体结构固定,具体参数可变,尽可能让参数动态化,才能提高模板的复用性 ================================================== ...

  9. Guava学习笔记:EventBus(转)

    EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现.对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和 ...

随机推荐

  1. Loj 504 ZQC的手办

    Loj 504 ZQC的手办 用线段树维护,每个节点存储区间内最小值 \(val\) 以及最小值出现的一个位置 \(pos\) . 对操作 \(1\) ,只需打标记即可,因为我们不维护其他的信息(如区 ...

  2. PowerDesigner生成Oracle表名带有引号的解决方法

    PowerDesigner生成表名带有引号,如下: /*==============================================================*/ /* Tabl ...

  3. MAMP环境配置

    命令行: 开启apache服务:sudo apachectl start 停止apache服务:sudo apachectl stop 重启服务:sudo apachectl restart 查看版本 ...

  4. 在线编辑器KindEditor的使用

    1.官网下载:点击进入 2.解压后目录说明 ├── asp asp示例 ├── asp.net asp.net示例 ├── attached 空文件夹,放置关联文件attached ├── examp ...

  5. ORM 查询

    ORM版学员管理系统 班级表 表结构 class Class(models.Model): id = models.AutoField(primary_key=True) # 主键 cname = m ...

  6. [LeetCode系列]子集枚举问题[有重复元素]

    给定一组数(未排序, 可能有重复元素), 求出所有可能的组合. 算法和无重复元素的相似. 唯一需要注意的是, 如果当前的数字和之前的相同, 算法就只会在结尾数字是此数字的组合后加上此数字. 比如现在是 ...

  7. Oracle之 等待事件log file sync + log file parallel write (awr优化)

    这是3月份某客户的情况,原因是server硬件故障后进行更换之后,业务翻译偶尔出现提交缓慢的情况.我们先来看下awr的情况. 我们能够看到,该系统的load profile信息事实上并不高,每秒才21 ...

  8. 自己定义一个tab指令

    定义一个tab切换的指令: 指令的文件结构: Js/directives/tab tab.html tab.js tab.html: <style> .my-li-style{ line- ...

  9. golang的sync包例子

    package main import ( "fmt" "sync" ) var wg sync.WaitGroup func asyncTestFunc() ...

  10. DS04--树

    一.学习总结 1.树结构思维导图 2.树结构学习体会 树这一节遇到最大的困难就是递归不能灵活的运用,总是想用链表那里的知识解决,做了一大堆,程序崩溃也找不到问题出在哪里. 二.PTA实验作业 题目1: ...