java - 如何检查 List<Long> 是否包含一个值?

标签 java collections

我有 list List<Long> list ,其中包含:[160774, 7212775] 和 Long id = 7212775 .我需要检查列表是否包含值为 id 的元素.怎么做?遗憾list.contains(id)返回 false就我而言。

我就是这样使用它的:

@RequestMapping("/case/{id}")
public String openCase(@PathVariable("id") Long id) {

    log.debug(caseDAO.findAllCasesId());    // [160774, 7212775]
    log.debug(id); // 7212775

    if(caseDAO.findAllCasesId().contains(id)) {
        return "case";
    } else {
        return "404";
    }
}

DAO 的一部分(Hibernate,但这里是原生 sql):

public List<Long> findAllCasesId() {
    String sql = "select id from cases";
    SQLQuery query = getSession().createSQLQuery(sql);
    return query.list();
}

已解决

问题出在 caseDAO.findAllCasesId() ,返回列表 Object , 不是 Long 的列表.我通过以下方式更正了这一点:

SQLQuery query = getSession().createSQLQuery(sql).addScalar("id", Hibernate.LONG);

非常感谢:Nayuki Minase

最佳答案

当自动装箱时,您需要确保用 L 对文字进行后缀,即 Long id = 7212775L 才能正常工作。

关于java - 如何检查 List<Long> 是否包含一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7113715/

相关文章:

java - 无法验证使用 jBcrypt 使用 php password_hash() 创建的 passwordhash+salt

java - 使用 Java 正则表达式验证长字符串中的日期

Java - 循环性能下降

c# - 是否可以将任意数据保存到 C# 中的文件中?

java - 使用Java JLayer的背景音乐在Eclipse和可运行的jar中播放,但在客户端下载并运行它时不播放

java - **copy** 和 ** addAll** 有什么区别吗?

java - 嵌套映射结构

Scala:类型参数不符合特征 Subtractable 的类型参数界限

Swift 集合类型

java - 从字节数组创建 8 位图像