有一種簡單的方法來檢查容器,如果它包含一個值,而不是一個對象?這是我想要工作的代碼:的Java容器。載有質疑
String[] i = {"One", "Two", "Three"};
if (Arrays.asList(i).contains("One")){
return true;
}
有沒有辦法做到這一點,或者我將不得不循環訪問數組?
有一種簡單的方法來檢查容器,如果它包含一個值,而不是一個對象?這是我想要工作的代碼:的Java容器。載有質疑
String[] i = {"One", "Two", "Three"};
if (Arrays.asList(i).contains("One")){
return true;
}
有沒有辦法做到這一點,或者我將不得不循環訪問數組?
這應該很好地工作。字符串是一個對象,因此您可以使用contains(Object)
過載(基於equals
)。
我認爲'contains()'使用'.equals'而不是'=='是有意義的。我想我只是在想這個。 – Falmarri 2010-07-22 16:41:16
您是否嘗試過的代碼?它應該工作。
Java集合使用equals
確定contains
平等。因此,如果一個對象的equals
方法測試值(而不是引用)相等性,你想要什麼工作。
字符串檢查,看看他們的價值觀是相同的。
要重複其他人一樣,字符串是對象,所以這將正常工作。 contains()方法使用Object.equals()來確定給定對象是否存在於列表中。
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.
我想說它的工作原理。
我逐字複製了它,它工作。 – corsiKa 2010-07-22 17:01:36