java multiset

作者:原创时间:2022-04-06
文档

java multiset是什么,让我们一起了解一下?

multiset就是在set中不去除重复的元素,Java中Guava提供了一个新集合类型Multiset,可以多次添加相等的元素,且和元素顺序无关,Multiset继承于JDK的Collection接口,而不是Set接口。

Java中Multiset和set有什么区别?

它可以对相同元素做一个计数的功能,普通的Set就像:[car,ship,bike],而Multiset会是这样:[car x 2,ship x 6,bike x 3]有这样有用的功能,就是跟踪每种对象的数量,所以你可以用来进行数字统计,每存放一个元素,那么该元素的count就加1。

譬如一个List里面有各种字符串,然后你要统计每个字符串List里面出现的次数,这个用Multiset就可以快速实现。

实战操作,示例代码如下:

static class Item implements Comparable{
        int a;
        public boolean delete;
        @Override
        public String toString() {
            return "Item [a=" + a + "]";
        }
        public Item(int a) {
            super();
            this.a = a;
        }
        public Item(int a, boolean delete) {
            super();
            this.a = a;
            this.delete = delete;
        }
        @Override
        public int compareTo(Item o) {//remove方法也会调用这里的方法,可以在remove的时候调试进来看看如何
            if(a>o.a)
                return 1;
            if(a==o.a&&(delete||o.delete))//注意这里的delete,是this.delete为判断的依据。o.delete指的是set中的,这样写万无一失吧
                return 0;
            return -1;
        }
    }

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java mvvm java mybatisplus java namespace java newinstance java nextint java nextline java nexus java nfs java geotools java getbytes java hashcode java hdfs java node类 java notify java nslookup java number java hibernate java htmlunit java image java implements java mqtt java mono java monad java module java modelandview java mockito java mmap java mkdir java mina java mian java method java merge java memcpy java matrix java matlab java math.ceil java mapping java malloc java main java logstash