[英]What parameters should I use for the contains() method?
我不太了解應將哪些參數傳遞給contains()方法。 我有自己的名為Name的類,該類由2個字符串(firstName,secondName)組成。 我創建了一個Name類型和2個Name對象的ArrayList,這些對象具有相同的名稱,例如(“ Joe,” Bloggs“)2x。因此,我必須通過哪些參數來檢查其是否有效,我已經正確地覆蓋了Name的equals方法類,這是我的主要程序:
import java.util.ArrayList;
public class EqualsTest {
public static void main(String[] args) {
ArrayList<Name> names = new ArrayList<Name>();
names.add(new Name("Joe", "Bloggs"));
names.add(new Name("John", "Smith")); //<--
names.add(new Name("Alan", "Wake")); // | the same name
names.add(new Name("Robert", "High"));// |
names.add(new Name("John", "Smith")); //---
names.contains(Name("Joe", "Bloggs"));
}
}
假設您在Name
類中正確覆蓋了equals
,則應為:
if (names.contains(new Name("Joe", "Bloggs"))) {
...
}
您可以使用
names.contains(new Name("Joe", "Bloggs"));
但是您應該重寫Name類中的equals()
方法以按預期工作。
每當您需要處理Java
集合框架工作時,最好在類中同時覆蓋equals()
和hashCode()
方法,否則最終會陷入混亂。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.