zoukankan      html  css  js  c++  java
  • guava入门学习2(新集合)

    新集合类型
    这可能是你梦寐以求的集合,在解决瘙痒方面,功能异常强大

    2.1 MultiSet
    痛点:统计次数
    传统做法:
    Map<String,Integer> count = new HashMap<String,Integer>();
    guava实现:
    Multiset multiset = HashMultiset.create();
    multiset.add("c”);
    multiset.add("c”);
    multiset.count(“c”);

    2.2 MultiMap
    痛点:单个指标对应集合
    传统做法:
    Map<String,List<String>>、Map<String,Set<String>>
    guava实现:
    Multimap<String, String> multimap = ArrayListMultimap.create();
    multimap.put("a","a1");
    multimap.put("a","a2");
    List<String> a = (List)multimap.get("a");
    a.forEach(System.out::print);
     

    2.3 BiMap
    痛点:一对一键值对关系维护
    传统做法:
    Map<String,Integer> nameMap = new HashMap<String,Integer>();
    Map<Integer,String> idMap = new HashMap<Integer,String>();
    需要同步维护两个map
    guava实现:
    BiMap<String,Integer> biMap = HashBiMap.create();
    biMap.put("aa",1);
    biMap.put("bb",2);
    biMap.put("cc",3);
    Integer id = biMap.get("aa");
    System.out.println(id);
    String name = biMap.inverse().get(2);
    System.out.println(name);

    2.4 Table
    痛点:需要模拟行列的关系,复杂度及代码维护代价提高
    传统做法:
    Map<String,Map<String,String>> tabMap = new HashMap<String,Map<String,String>>();
    字段间的关系不清晰,可读性大,维护难度大
    guava实现:
    Table<String,String,String> table = HashBasedTable.create();
    table.put("line1","coll1","l1c1");
    table.put("line1","coll2","l1c2");
    table.put("line2","coll1","l2c1");
    Map<String,String> row1Map = table.row("line1");
    Map<String,String> coll1Map = table.column("coll1");
  • 相关阅读:
    iOS中按钮点击事件处理方式
    用PNChart绘制折线图
    用PNChart绘制饼状图简介
    MWeb发布到博客园配置
    对数组排序后,获取排序前元素索引
    iOS学习笔记之触摸事件&UIResponder
    iOS学习笔记之UITableViewController&UITableView
    4.matplotlib绘制直方图
    2. matplotlib绘制散点图
    3.matplotlib绘制条形图
  • 原文地址:https://www.cnblogs.com/input4hua/p/7859554.html
Copyright © 2011-2022 走看看