2010-07-22 40 views
1

有一種簡單的方法來檢查容器,如果它包含一個值,而不是一個對象?這是我想要工作的代碼:的Java容器。載有質疑

 

String[] i = {"One", "Two", "Three"}; 

if (Arrays.asList(i).contains("One")){ 
return true; 
} 
 

有沒有辦法做到這一點,或者我將不得不循環訪問數組?

+0

我逐字複製了它,它工作。 – corsiKa 2010-07-22 17:01:36

回答

3

這應該很好地工作。字符串是一個對象,因此您可以使用contains(Object)過載(基於equals)。

+0

我認爲'contains()'使用'.equals'而不是'=='是有意義的。我想我只是在想這個。 – Falmarri 2010-07-22 16:41:16

1

您是否嘗試過的代碼?它應該工作。

Java集合使用equals確定contains平等。因此,如果一個對象的equals方法測試值(而不是引用)相等性,你想要什麼工作。

字符串檢查,看看他們的價值觀是相同的。

0

要重複其他人一樣,字符串對象,所以這將正常工作。 contains()方法使用Object.equals()來確定給定對象是否存在於列表中。

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. 

我想說它的工作原理。