转自:
Google guava之Multiset简介说明
下文笔者讲述guava中Multiset集合的简介说明,如下所示
guava之Multiset集合简介
Multiset集合:
可用于存储重复元素
Multiset是ArrayList和Map的结合体
Multiset是没有元素顺序限制的ArrayList
Multiset提供了键为元素,值为计数的Map
例:
package com.java265.testmaven;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import com.google.common.collect.HashMultiset;
import com.google.common.collect.Multiset;
public class TestGuava {
/**
* java265.com
* guava示例分享
* */
public static void main(String[] args) {
Multiset<String> multiset = HashMultiset.create();
// 可直接添加元素
multiset.add("java265.com-1");
multiset.add("java265.com-2");
multiset.add("java265.com-3");
multiset.add("java265.com-3");
multiset.add("java265.com-3");
List<String> list = new ArrayList<String>();
list.add("java265.com-4");
list.add("java265.com-5");
list.add("java265.com-6");
// 也可用addAll方法添加集合进来
multiset.addAll(list);
// 获取元素"java265.com-3"的计数
System.out.println(multiset.count("java265.com-3"));
// 返回去重后的元素set集合
Set<String> set = multiset.elementSet();
// multiset所有元素的个数
System.out.println("multiset.size():" + multiset.size());
// multiset去重后的元素个数
System.out.println("elementSet().size():" + multiset.elementSet().size());
// 元素迭代
Iterator<String> it = multiset.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
// 可以通过设置元素的计数,来批量的添加元素,当然能加也能减
multiset.setCount("java265.com-3", 5);
// 将元素的计数设为0,就相当于移除所有的"c"元素
multiset.setCount("java265.com-3", 0);
// 移除一个元素
multiset.remove("java265.com-3");
// 移除两个"c"元素
multiset.remove("java265.com-3", 2);
}
}