首页 > 其他分享 >Guava工具类中一些集合和方法的使用

Guava工具类中一些集合和方法的使用

时间:2023-02-15 22:22:06浏览次数:38  
标签:map 入门 System println Sets 集合 Guava 类中 out

Multiset:无序可重复set,重复元素显示个数 还是挺有用的数据结构
   @Test
    void test5() {
        String s = "good good study day day up";
        String[] s1 = s.split(" ");
        HashMultiset<String> multiset = HashMultiset.create();
        multiset.addAll(Arrays.asList(s1));
        System.out.println(multiset);//[study, up, good x 2, day x 2]
        multiset.forEach(e -> {
            System.out.println(e + "->" + multiset.count(e));
            /*
            study->1
            up->1
            good->2
            good->2
            day->2
            day->2
            */
        });
    }
Multimap:key可重复的map(我理解就是Map<String, Set<String>这种结构)
   
 @Test
 void test6() {
//需求:统计每个作者有几本书
HashMap<String, String> map = new HashMap<>();
map.put("Java从入门到精通", "bin"); //书名:作者
map.put("Java从入门到精通", "bin"); //书名:作者
map.put("Android从入门到精通", "bin"); //书名:作者
map.put("PHP从入门到精通", "jack"); //书名:作者
map.put("笑看人数", "vince"); //书名:作者

Multimap<String, String> mmap = ArrayListMultimap.create();
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> next = iterator.next();
mmap.put(next.getValue(), next.getKey());
}
System.out.println(mmap);//{bin=[Java从入门到精通, Android从入门到精通], vince=[笑看人数], jack=[PHP从入门到精通]}
Set<String> strings = mmap.keySet();
strings.forEach(e -> {
System.out.println(e + " -> " +mmap.get(e));
});
  /**
  * bin -> [Java从入门到精通, Android从入门到精通]
  * vince -> [笑看人数]
  * jack -> [PHP从入门到精通]
  */
}


求集合交集、并集、差集,非常好用

   @Test
    void test4() {
        HashSet<Integer> set1 = Sets.newHashSet(1, 2, 3);
        HashSet<Integer> set2 = Sets.newHashSet(3, 4, 5);
        Sets.SetView<Integer> intersection = Sets.intersection(set1, set2);
        System.out.println(intersection); //[3]

        Sets.SetView<Integer> difference = Sets.difference(set1, set2);
        System.out.println(difference);//[1, 2]

        Sets.SetView<Integer> union = Sets.union(set1, set2);
        System.out.println(union);//[1, 2, 3, 4, 5]
    }

未完待续......

 
 

标签:map,入门,System,println,Sets,集合,Guava,类中,out
From: https://www.cnblogs.com/wscw/p/17124975.html

相关文章

  • 集合
    集合一、集合的理解和好处前面保存多个数据使用的是数组,那么数组有不足的地方,分析一下数组长度开始时必须指定,而且一旦指定,不能更改;保存的必须为同类型的元素;......
  • C++模板类中的静态成员变量的初始化
    变量声明:template<classT,enumEDeviceTypeg_eDeviceType>classILocalDeviceProtocolImpl:publicT{public:ILocalDevicePr......
  • 两个集合对比
    上代码,主要是学习到了如何对比出两个List集合的和差交并集方法staticvoidMain(string[]args){varleftKes=newList<string>(){"111111",......
  • 5、开发中如何选择集合实现类
    在开发中,选择什么集合实现类,主要取决于业务操作特点,然后根据集合实现类特性进行选择,分析如下:先判断存储的类型(一组对象[单列]或一组键值对[双列])一组对象[单列]:Collecti......
  • 集合面试题
    Collection:①List:  Vector(Stack),  ArrayList,  LinekdList ②Set:  HashSet(LinkedHashSet),  TreeSet③Queue:  PriorityQueue,  ArrayDeque......
  • 【Python21天学习挑战赛】集合 & 数据类型补充
    开头一叙:无论是以后学习需要或者是三年后的工作需要,都需要用到python的工具,也接着这次活动的机会,把python系统的学一遍。跟着大佬,让python知识从入门到精通。文章目录​​......
  • 使用 Kitten 编程猫绘制一个 Y 方向平铺的立方体集合
    效果如下图所示:我们实际上使用了2D来模拟3D效果。应用程序启动时,默认只绘制一个立方体,因此我们在初始绘制的函数里,只执行动态绘制X方向的立方体这一个逻辑。因为默......
  • 区间插入,维护本质相同集合对数 (离线)
    有\(n\)个集合,\(m\)次操作,第\(i\)次操作选择一个区间\([l_i,r_i]\),在这些集合里插入\(i\),每次操作后查询本质相同集合对数。先用可持久化线段树来存每个集合。......
  • 028_测试_测试类中启动 web 环境
    修改pom.xml的依赖  WebTest.java ......
  • ADB命令集合
    一.基础命令1.启动adb服务:adbstart_server2.终止adb服务:adbkill_server3.获取帮助:adbhelp4.查看adb版本:adbversion5.连接设备:adbconn......