Java中有一个名为HashSet的类
例如,我将向HashSet添加以下int形值,
[输入]
1,2,3,4,5,6,1,2,3,1,
Run Code Online (Sandbox Code Playgroud)
[哈希结构]
1,1,1
2,2
3,3
4
5
6
Run Code Online (Sandbox Code Playgroud)
是否有收藏成为这样的结构?
如果我理解你的问题,那么你正在寻找所谓的"Multiset".Java没有内置的Multisets,但你可以用a构建你想要的东西HashMap<Integer, HashSet<Integer>>.此外,还有许多第三方库,例如Google Collections Library.
不,但是很容易包装HashMap.
public class Tally<T> {
private final Map<T, Integer> count = new HashMap<T, Integer>();
public void increment(T t) {
Integer i = count.get(t);
count.put(t, i == null ? 1 : i+1);
}
public void decrement(T t) {
Integer i = count.get(t);
if (i == null) {
throw new IllegalArgumentException("not present");
}
if (i == 1) {
count.remove(t);
} else {
count.put(t, i-1);
}
}
public int get(T t) {
Integer i = count.get(t);
return i == null ? 0 : i;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1320 次 |
| 最近记录: |