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. 用idea将javaweb项目部署到tomcat

    之前在网上找的一些web项目都是用eclipse开发的,想把这些项目导入到idea中,然后部署到tomcat中,在网上找了很多教程,很多都不靠谱,发现网上很多配置都是多余的,其实很多只需要按idea默 ...

  2. Machine Schedule(二分图匹配之最小覆盖点,匈牙利算法)

    个人心得:二分图啥的一点都不知道,上网借鉴了下,请参考http://blog.csdn.net/thundermrbird/article/details/52231639 加上自己的了解,二分图就是 ...

  3. 《DSP using MATLAB》示例 Example 6.25

    代码: % x = [-0.9, 0.81]; [y, L, B] = QCoeff(x, 3) % Unquantized parameters r = 0.9; theta = pi/3; a1 ...

  4. flask第十八篇——模板【2】

    请关注公众号:自动化测试实战 上一节我们介绍了模板的基本使用方法,现在我们想一个问题,如果把index.html放到template文件夹下面的文件夹该怎么办呢?其实很容易,当文件夹结构如下图所示时: ...

  5. opencv读取中文路径报错的问题

    ) ## 经验证,不需要再转bgr,myImread的读图结果已经是和imread一样的 return img

  6. 轻量级封装DbUtils&Mybatis之三MyBatis分页

    MyBatis假分页 参考DefaultResultSetHandler的skipRows方法. 温馨提示:部分代码请参考轻量级封装DbUtils&Mybatis之一概要 解决方案 1)之前公 ...

  7. [Java.Web][Servlet]常用请求头.断点续传

    HTTP 请求头字段 Range Range 头指示服务器只传输一部分 Web 资源.这个头可以用来实现断点续传功能. Range 字段可以通过三种格式设置要传输的字节范围: Range  bytes ...

  8. spring cache之自定义keys的过期时间

    spring @cacheable注解默认不支持方法级别的缓存失效时间,只能通过配置来配置全局的失效时间 如果需要实现对方法级别的缓存支持失效时间机制,有一种比较简单的方法,spring配置文件如下: ...

  9. 为什么 JSON 接口的数据都要加双引号!!!不能用单引号

    原因是:Javascript 在很多时候会把 JSON 对象里面没有双引号包围的值,当做数值处理.比如: {"a":987654321} 这个 JSON 里头的变量 a,会被当做一 ...

  10. hadoop map端的超时参数

    目前集群上某台机器卡住导致出现大量的Map端任务FAIL,当定位到具体的机器上时,无法ssh或进去后terminal中无响应,退出的相关信息如下: [hadoop@xxx ~]$ Received d ...