Multiset 集合类 - Google Guava

一、Multiset简介

在JDK中,List 和 Set 有一个基本的区别,就是 List 可以包含多个相同对象,且是有顺序的,而 Set 不能有重复,且不保证顺序(有些实现有顺序,例如 LinkedHashSet 和 SortedSet等)所以 Multiset 占据了 List 和 Set 之间的一个灰色地带:允许重复,但是不保证顺序。事实上,Multiset 并没有实现 java.util.Set 接口,它更像是一个 Bag。普通的 Set 就像这样:[car, ship, bike],而 Multiset 会是这样:[car x 2, ship x 6, bike x 3]。

 

二、常用方法

官方文档:https://google.github.io/guava/releases/27.0.1-jre/api/docs/com/google/common/collect/Multiset.html

修饰符和类型方法描述
boolean

add(E element) 

向其中添加单个元素.

int

add(E element, int occurrences) 

增加给定元素在Multiset中的计数

boolean

contains(@Nullable Object element) 

是否包含元素.

boolean

containsAll(Collection<?> elements) 

如果这个多集至少包含一个出现的指定集合中的所有元素.

int

count(@Nullable Object element) 

返回给定参数元素的个数.

Set<E>

elementSet() 

Multiset中不重复元素的集合,类型为Set

Set<Multiset.Entry<E>>

entrySet() 

和Map的entrySet类似,返回Set<multiset.entry>,其中包含的Entry支持getElement()和getCount()方法

boolean

equals(@Nullable Object object) 

比较指定对象与此multiset是否相等.

default void

forEach(Consumer<? super E> action) 

元素遍历.

default void

forEachEntry(ObjIntConsumer<? super E> action) 

为此多集中的每个不同元素运行指定的操作,以及该元素的出现次数。

int

hashCode() 

返回此multiset的哈希码.

Iterator<E>

iterator() 

返回一个迭代器,包含Multiset的所有元素(包括重复的元素)

boolean

remove(@Nullable Object element) 

移除一个元素,其count值 会响应减少.

int

remove(@Nullable Object element, int occurrences) 

减少给定元素在Multiset中的计数

boolean

removeAll(Collection<?> c) 

去除出现给给定集合参数的所有的元素.

boolean

retainAll(Collection<?> c) 

保留出现在给定集合参数的所有的元素.

int

setCount(E element, int count) 

设置给定元素在Multiset中的计数,不可以为负数.

boolean

setCount(E element, int oldCount, int newCount) 

将符合原有重复个数的元素修改为新的重复次数.

int

size() 

返回所有元素的总个数(包括重复的元素)

default Spliterator<E>

spliterator() 

在此集合中的元素上创建Spliterator.

String

toString() 

返回该对象的字符串表示.

从接口 java.util.Collection 继承的方法有:addAll, clear, isEmpty, parallelStream, removeIf, stream, toArray

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值