zoukankan      html  css  js  c++  java
  • [Google Guava]学习--新集合类型Multiset

    Guava提供了一个新集合类型Multiset,它可以多次添加相等的元素,且和元素顺序无关。Multiset继承于JDK的Cllection接口,而不是Set接口。

    Multiset主要方法介绍:

    • add(E element) :向其中添加单个元素
    • add(E element,int occurrences) : 向其中添加指定个数的元素
    • count(Object element) : 返回给定参数元素的个数
    • remove(E element) : 移除一个元素,其count值 会响应减少
    • remove(E element,int occurrences): 移除相应个数的元素
    • elementSet() : 将不同的元素放入一个Set中
    • entrySet(): 类似与Map.entrySet 返回Set<Multiset.Entry>。包含的Entry支持使用getElement()和getCount()
    • setCount(E element ,int count): 设定某一个元素的重复次数
    • setCount(E element,int oldCount,int newCount): 将符合原有重复个数的元素修改为新的重复次数
    • retainAll(Collection c) : 保留出现在给定集合参数的所有的元素
    • removeAll(Collectionc) : 去除出现给给定集合参数的所有的元素
    package com.parry.guava.GuavaTest;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import com.google.common.collect.HashMultiset;
    import com.google.common.collect.Multiset;
    
    public class MultisetTest {
    
        public static void main(String[] args) {
    
            String str = "this is a cat and that is a mice";
            String[] strArr = str.split(" ");
    
            List<String> words = new ArrayList<String>();
            for (String stmp : strArr) {
                words.add(stmp);
            }
            Multiset<String> wordMultiset = HashMultiset.create();
            wordMultiset.addAll(words);
            //将不同的元素放在一个集合set中
            for (String key : wordMultiset.elementSet()) {
                //查看指定元素的个数
                System.out.println(key + "-->" + wordMultiset.count(key));
            }
            
            System.out.println("-----向集合中添加元素-----");
            //向集合中添加元素
            wordMultiset.add("that");
            for (String key : wordMultiset.elementSet()) {
                System.out.println(key + "-->" + wordMultiset.count(key));
            }
            
            System.out.println("-----向集合中添加若干个元素-----");
            //向集合中添加若干个元素
            wordMultiset.add("and", 10);
            for (String key : wordMultiset.elementSet()) {
                System.out.println(key + "-->" + wordMultiset.count(key));
            }
            
            System.out.println("-----向集合中移出一个元素-----");
            //向集合中移出一个元素
            wordMultiset.remove("that");
            for (String key : wordMultiset.elementSet()) {
                System.out.println(key + "-->" + wordMultiset.count(key));
            }
            
            System.out.println("-----向集合中移出若干个元素-----");
            //向集合中移出若干个元素,如果元素的个数小于要移除的个数,则会把该元素移除光
            wordMultiset.remove("and",10);
            for (String key : wordMultiset.elementSet()) {
                System.out.println(key + "-->" + wordMultiset.count(key));
            }
            
            System.out.println("-----向集合中移出一个元素-----");
            //向集合中移出一个元素
            wordMultiset.remove("is");
            for (String key : wordMultiset.elementSet()) {
                System.out.println(key + "-->" + wordMultiset.count(key));
            }
            
            System.out.println("-----设定某一个元素的重复次数-----");
            //设定某一个元素的重复次数
            wordMultiset.setCount("and", 10);
            for (String key : wordMultiset.elementSet()) {
                System.out.println(key + "-->" + wordMultiset.count(key));
            }
            
            System.out.println("-----设置复合元素的个数设为新的重复次数-----");
            //设置复合元素的个数设为新的重复次数(条件是参数等于原来的元素个数)
            wordMultiset.setCount("and", 1,0);
            for (String key : wordMultiset.elementSet()) {
                System.out.println(key + "-->" + wordMultiset.count(key));
            }
            
            System.out.println("-----删除给定集合中的元素-----");
            //删除给定集合中的元素
            wordMultiset.removeAll(words);
            for (String key : wordMultiset.elementSet()) {
                System.out.println(key + "-->" + wordMultiset.count(key));
            }
        }
    }
  • 相关阅读:
    开源博客平台WordPress十岁啦!
    (转载)C# Attribute 用法备忘
    hibernate入门
    Hibernate对象关系映射基础
    struts2UI标签
    struts2文件上传2(多文件)
    struts2验证(手工)
    通过修改注册表改变txt文件的默认打开方式
    struts2验证(XML)
    Struts国际化
  • 原文地址:https://www.cnblogs.com/parryyang/p/5776338.html
Copyright © 2011-2022 走看看