教程 > guava 教程 > 阅读:15

guava multiset 接口——迹忆客-ag捕鱼王app官网

返回 guava collections 实用程序


multiset 接口扩展了“set”以具有重复元素,并提供了各种实用方法来处理集合中此类元素的出现。


接口声明

以下是 com.google.common.collect.multiset 接口的声明

@gwtcompatible
public interface multiset
   extends collection

接口方法

序号 方法 说明
1 boolean add(e element) 将指定元素的单次出现添加到此多重集。
2 int add(e element, int occurrences) 将某个元素出现的次数添加到此多重集。
3 boolean contains(object element) 确定此多重集是否包含指定的元素。
4 boolean containsall(collection elements) 如果此多重集包含指定集合中每个元素的至少一次出现,则返回 true。
5 int count(object element) 返回此多重集中元素的出现次数(元素的计数)。
6 set elementset() 返回此多重集中包含的不同元素的集合。
7 set> entryset() 返回此多重集内容的视图,分组为 multiset.entry 实例,每个实例提供多重集的一个元素和该元素的计数。
8 boolean equals(object object) 比较指定对象与此多重集是否相等。
9 int hashcode() 返回此多重集的哈希码。
10 iterator iterator() 返回此集合中元素的迭代器。
11 boolean remove(object element) 从此多重集中移除指定元素的单个匹配项(如果存在)。
12 int remove(object element, int occurrences) 从此多重集中移除多次出现的指定元素。
13 boolean removeall(collection c) 删除此集合的所有也包含在指定集合中的元素(可选操作)。
14 boolean retainall(collection c) 仅保留此集合中包含在指定集合中的元素(可选操作)。
15 int setcount(e element, int count) 添加或删除元素的必要出现次数,以使该元素达到所需的计数。
16 boolean setcount(e element, int oldcount, int newcount) 有条件地将元素的计数设置为新值,如 setcount(object, int) 中所述,前提是该元素具有预期的当前计数。
17 string tostring() 返回对象的字符串表示形式。

方法继承

该接口从以下接口继承方法 -

  • java.util.collection

multiset的例子

c:/> guava 中使用我们选择的任何编辑器创建以下 java 程序。

guavatester.java

import java.util.iterator;
import java.util.set;
import com.google.common.collect.hashmultiset;
import com.google.common.collect.multiset;
public class guavatester {
   public static void main(string args[]) {
   
      / /创建一个 multiset 集合
      multiset multiset = hashmultiset.create();
      
      multiset.add("a");
      multiset.add("b");
      multiset.add("c");
      multiset.add("d");
      multiset.add("a");
      multiset.add("b");
      multiset.add("c");
      multiset.add("b");
      multiset.add("b");
      multiset.add("b");
      
      system.out.println("occurrence of 'b' : " multiset.count("b"));
      
      //打印 multiset 的总大小
      system.out.println("total size : " multiset.size());
      
      //将 multiset 的不同元素作为集合
      set set = multiset.elementset();
      //显示集合的元素
      system.out.println("set [");
      
      for (string s : set) {
         system.out.println(s);
      }
      system.out.println("]");
      
      //使用迭代器显示 multiset 的所有元素
      iterator iterator  = multiset.iterator();
      system.out.println("multiset [");
      while(iterator.hasnext()) {
         system.out.println(iterator.next());
      }
      
      system.out.println("]");
      
      //显示 multiset 的不同元素及其出现次数
      system.out.println("multiset [");
      for (multiset.entry entry : multiset.entryset()) {
         system.out.println("element: "   entry.getelement()   ", occurrence(s): "   entry.getcount());
      }
      system.out.println("]");
      //删除多余的事件
      multiset.remove("b",2);
      
      system.out.println("occurence of 'b' : "   multiset.count("b"));
   }
}

验证结果

使用 javac 编译器编译类,如下所示

c:\guava>javac guavatester.java

现在运行 guavatester 以查看结果。

c:\guava>java guavatester

结果如下

occurence of 'b' : 5
total size : 10
set [
d
b
c
a
]
multiset [
d
b
b
b
b
b
c
c
a
a
]
multiset [
element: d, occurence(s): 1
element: b, occurence(s): 5
element: c, occurence(s): 2
element: a, occurence(s): 2
]

返回 guava collections 实用程序

查看笔记

扫码一下
查看教程更方便
网站地图