【问题标题】:Java container .contains questionJava 容器 .contains 问题
【发布时间】:2011-03-19 16:15:54
【问题描述】:

是否有一种简单的方法可以检查容器是否包含值而不是对象?这是我想要工作的代码:

String[] i = {"One", "Two", "Three"}; if (Arrays.asList(i).contains("One")){ return true; }

有没有办法做到这一点,还是我必须自己循环遍历数组?

【问题讨论】:

  • 我一字不差地复制了它,它奏效了。

标签: java containers contains


【解决方案1】:
class ContainsTest {
    public static void main(String[] args) {
        String[] i = {"One", "Two", "Three"};
        System.out.println(java.util.Arrays.asList(i).contains("One"));
    }  
}

输出

 ----jGRASP exec: java ContainsTest

true

 ----jGRASP: operation complete.

我会说它有效。

【讨论】:

    【解决方案2】:

    重复其他人,字符串 一个对象,所以这可以正常工作。 contains() 方法使用 Object.equals() 来确定给定对象是否存在于列表中。

    【讨论】:

      【解决方案3】:

      你试过那个代码吗?它应该可以工作。

      Java 集合使用equals 来确定@​​987654322@ 是否相等。因此,如果对象上的 equals 方法测试值(而不是引用)相等性,那么您想要的将起作用。

      字符串检查它们的值是否相同。

      【讨论】:

        【解决方案4】:

        这应该可以正常工作。 String 是一个对象,因此您可以使用contains(Object) 重载(基于equals)。

        【讨论】:

        • 我想contains() 使用.equals 而不是== 是有道理的。我想我只是想多了。
        猜你喜欢
        • 2011-02-12
        • 2012-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-24
        • 1970-01-01
        • 1970-01-01
        • 2011-03-24
        相关资源
        最近更新 更多