Java 检查向量值是否在集合中<;字符串>;

Java 检查向量值是否在集合中<;字符串>;,java,vector,set,Java,Vector,Set,我试图找出一个向量是否包含一个集合中的任何值,如果它抛出一个异常,下面是我尝试过的,不知道它是否正确,这不会给出结果: //This method returns of List type itself. List<String> listUniqueIds = DataAccessSessionBeanBase.queryToVector(strQuery); //gives a set of strings HashSet<String> setUniqueIds

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

//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");
    }
}
//此方法返回列表类型本身。
List ListUniqueId=DataAccessSessionBeanBase.queryToVector(strQuery);
//给出一组字符串
HashSet setUniqueIds=getUniqueIds(objRtElement);
for(字符串strUniqueId:setuniqueid)
{
System.out.println(“strUniqueId:+strUniqueId”);
if(vecuniqueid.contains(strUniqueId))
{
抛出新异常(“不正确的值”);
}
}

您所做的没有错,但是如果您想使用Java 8流,您可以尝试:

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

除了@cwrhaf的答案之外,您甚至可以完全省略if,并使用


您的代码与您的描述相反。请停止使用向量。自Java2以来,它已经过时了。不要使用原始类型。它应该是矢量,而不是矢量。
矢量中的对象类型是什么?如果不是
String
,则永远不会有匹配项。@JBNizet我被迫使用vector,因为它是遗留代码,但无论如何,我已经更新了它,如何以更好的方式找到它?我已经说过:停止使用原始类型:它应该是一个列表,而不是一个列表。修复代码,因为它与您的描述相反。如果它不是一个列表,那么请阅读并回答Eran的评论。那么,列表确切地包含了什么,集合确切地包含了什么,你期望会发生什么,以及会发生什么?很好,没有想到!
setUniqueIds.stream()
    .filter(listUniqueIds::contains)
    .findAny()
    .orElseThrow(() -> new Exception("Incorrect values"));