繁体   English   中英

检查 Vector 的值是否在 Set 中<String>

[英]Check if a value of a Vector are in Set<String>

我试图找出一个向量是否包含集合中的任何值,如果它抛出异常,这是我尝试过的,不知道它是否正确,它没有给出结果:

//This method returns of List type itself.
List<String> listUniqueIds = DataAccessSessionBeanBase.queryToVector(strQuery);

//gives a set of strings
HashSet<String> setUniqueIds = getUniqueIds(objRtElement);
for(String strUniqueId : setUniqueIds)
{
    System.out.println("strUniqueId : "+strUniqueId);
    if(vecUniqueIds.contains(strUniqueId))
    {
        throw new Exception("Incorrect values");
    }
}

你在做什么没有错,但如果你想使用 Java 8 流,你可以尝试:

if(setUniqueIds.stream().filter(listUniqueIds::contains).findAny().isPresent()) {
    throw new Exception("Incorrect values");
}

除了@Cwrwhaf 的回答,你甚至可以完全省略 if,而使用Optional::orElseThrow

setUniqueIds.stream()
    .filter(listUniqueIds::contains)
    .findAny()
    .orElseThrow(() -> new Exception("Incorrect values"));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM