情况如下--我需要在Java 7中维护in (String)的集合(无界/单个编写器)。
由于新的记录与一个特定的标志集(不重要)-我试图插入。
如果我在集合中找到一个预先存在的记录,我会提醒和改写。
如果新记录的标志未设置-我试图删除记录,如果存在的话。
为了提高性能,必须避免所有的查找(2步)。
插入/更新/删除尽可能接近O(1)。
HashSet会是最合适的收藏吗?
发布于 2017-01-27 03:42:24
如果您的代码是单线程的,HashSet应该是一个很好的匹配。抽样实施情况:
Set<String> ids = new HashSet<>();
void processRecord(Record record) {
if (record.hasFlag()) {
if (!ids.add(record.getId())) {
alertDuplicate(record);
}
} else {
ids.remove(record.getId());
}
}https://stackoverflow.com/questions/41886596
复制相似问题