【Java之轨迹】Guava 基础使用之集合(详细注释演示)


0. 导入依赖包

<!-- guava -->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>30.1.1-jre</version>
</dependency>

1. 新集合类型

Guava 中包含了多种新的集合类型,包括了:

  • Multiset:新增了元素计数,元素去重,批量添加与删除元素等特性
  • SortedMultiset:新增获取子集特性
  • Multimap:新增将一个键映射到多个值的特性
  • BiMap:新增键值对的双向映射特性
  • Table:新增两个 key(相当于坐标)确定一个 value的特性
  • ClassToInstanceMap:新增从类型到对象的映射的特性

① Mutiset

@Test
public void MultisetTest() {
   
    // 通过 create 方法创建,使用 add 添加元素
    Multiset<String> set = HashMultiset.create();
    set.add("ice");
    set.add("len");
    set.add("rin");
    set.add("ice");

    // 也可以通过引入其他集合一次性添加
    List<String> list = new ArrayList<>();
    list.add("rex");
    list.add("ice");
    list.add("len");
    list.add("alsie");
    set.addAll(list);

    // 特性 1 :计算某个元素的数量
    System.out.println("【1】ice 的数量:" + set.count("ice"));

    // 特性 2 :去除重复元素(返回值是一个新的 Multiset 可以接收)
    System.out.println("【2】不重复元素:" + set.elementSet());

    // 特性 3 :批量处理元素
    System.out.println("【3】" + set);
    // 设置 ice 的数量为 2(ice 从 3 变成了 2)
    set.setCount("ice", 2);
    // 设置 fire 为 5
    set.setCount("fire", 5);
    System.out.println("【4】" + set);
    
    // 将 ice 的数量增加 4
    set.add("ice", 4);
    // 将 fire 的数量减少 2
    set.remove("fire", 2);
    System.out.println("【5】" + set);
    // 要移除的大于拥有的,视为全部移除
    set.remove("fire", 5);
    System.out.println("【6】" + set);
}
【1】ice 的数量:3
【2】不重复元素:[len, rex, rin, ice, alsie]
【3】[len x 2, rex, rin, ice x 3, alsie]
【4】[len x 2, rex, rin, fire x 5, ice x 2, alsie]
【5】[len x 2, rex, rin, fire x 3, ice x 6, alsie]
【6】[len x 2, rex, rin, ice x 6, alsie]

② SortedMultiset

@Test
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒冰小澈IceClean

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值