gpt4 book ai didi

java - 是否有更有效的方法来验证是否存在重复值(Java)?

转载 作者:搜寻专家 更新时间:2023-11-01 01:53:48 25 4
gpt4 key购买 nike

我需要验证给定的 ID 列表不包含任何重复值。我的尝试可以在这里显示:

public void validate(RecordCollection collection)
throws BusinessException {

LinkedHashMap<Long, Long> existingIds = new LinkedHashMap<Long, Long>();

for (Record record : collection.getArrayList()) {

// check that you don't have two records with the same id
if (existingIds.containsKey(record.getID())) {
throw new BusinessException("records must be unique.",
ExceptionCodes.RECORDS_MUST_BE_UNIQUE);
}

//add the id to the map of existing ids
existingIds.put(record.getID(), vo.getID());

}

是否有更有效的方法来实现此验证?

最佳答案

是的,有,只是稍作修改:

for (Record record : collection.getArrayList())
if (existingIds.put(record.getID(), vo.getID()) != null)
throw new BusinessException("records must be unique.",
ExceptionCodes.RECORDS_MUST_BE_UNIQUE);

Map.put() 操作返回键的先前值。如果没有条目,将返回 null。在这里,由于您没有 null 值,这意味着如果返回代码不是 null,则您有一个重复值。

(另外,为什么要使用 LinkedHashMap?您的方法返回 void,因此插入顺序无关紧要;只需使用 HashMap)

(同样,按照建议,在构建 map 时,将其大小初始化为您正在检查的集合的大小)

关于java - 是否有更有效的方法来验证是否存在重复值(Java)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16959723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com