HashSet基于HashMap.
如果我们看一下HashSet<E>实现,一切都在管理之下HashMap<E,Object>.
<E>被用作关键词HashMap.
我们知道这HashMap不是线程安全的.这就是我们ConcurrentHashMap在Java中的原因.
基于此,我很困惑,为什么我们没有一个应该基于的ConcurrentHashSet ConcurrentHashMap?
还有什么我想念的吗?我需要Set在多线程环境中使用.
另外,如果我想创建我自己的ConcurrentHashSet,我可以通过替换HashMapto来实现它,ConcurrentHashMap并将其余部分保留原样?
是否有一些集合实现支持元素到期.
例如:
Collection<User> cachedUsers = new ExpirableList<User>(10000);
Run Code Online (Sandbox Code Playgroud)
哪里
public ExpirableList(final long timeout){...}
Run Code Online (Sandbox Code Playgroud)
在给定时间之后(10000ms在此特定示例中),将从集合中移除添加的元素.通过使用它,我们将防止我们的cachedUsers集合溢出.