簡體   English   中英

contains()方法應使用哪些參數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM