Java在HashSet中找到最常见的值

Dav*_*veB 0 java hashset java-ee

这里有一个基本问题,但我想知道最好的方法是什么......

我有一个HashSet,我正在添加对象,.add()方法只会添加一个对象(如果它尚不存在).但我想要做的是添加所有对象,然后在最后得到以下结果..

- 独特(不同)对象的数量
- 对象的平均频率

有人能指出我正确的方向吗?

提前致谢

S.L*_*ica 7

使用HashMap.使用条目作为键,并将它们映射到整数以保持计数.

编辑:您可能想要包装HashMap,以确保每次添加或删除对象时,都会适当地修改计数器.
为了帮助您入门:

class MapWrapper<Key>
{
    private Map<Key,Integer> map = new HashMap<Key, Integer>();

    void add( Key key )
    {
        Integer n = map.get( key );
        if ( n == null )
        {
            map.put( key, 1 );
        }
        else
        {
            map.put( key, new Integer( n + 1 ));
        }
    }

    int occurrences( Key k )
    {
        Integer n = map.get( k );
        if ( n == null )
        {
            return 0;
        }
        else
        {
            return n;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)