2016-05-02 10 views
1

Ich möchte jemanden, der mir helfen, diese Methode neu zu schreiben, um es in der Lage zu machen die Spiele zu finden, während es nichtWie kann ich dieses Problem beheben Methode

public boolean equals(Object otherObject)    { 
      if (otherObject ==null) 
      { 
         return false; 
      } 
      else if (getClass() != otherObject.getClass()) 
      { 
         return false; 
      } 
      else 
      { 
         Contact otherContact = (Contact)otherObject; 
         return (first.equals(otherContact.first) && 
               last.equals(otherContact.last)&& 
               phone.equals(otherContact.phone)&& 
               email.equals(otherContact.email)); 
      }    } 

Es zeigt, kann mich gibt es keine Übereinstimmungen, während es Übereinstimmungen sind in meine Eingabe

public void displayMatch() 
{ 

    System.out.println("Enter keyword: "); 
    Scanner input = new Scanner(System.in); 
    String in = input.next(); 

        for (Contact c : contacts) 
        { 
            if (in.equals(c)) { 
                System.out.println(c); 
            } else { 
                System.out.println("No matches."); 
            } 
        }   
} 
+0

Sie versuchen, eine 'Zeichenfolge' mit einem' Kontakt' zu vergleichen, und das ergibt für mich keinen Sinn. –

+0

Contar von arraylist mit Schlüsselwort – dave

+0

Was stellt dieses "Schlüsselwort" dar? – shmosel

Antwort

3

Da Sie String mit einem Objekt vergleichen, funktioniert es nicht. Sie müssen zwei Objekte vergleichen.

so, was Sie tun, ist die Eingabe von Benutzer fragen, erstellen Contact Objekt und Anruf gleich. siehe unten

public void displayMatch() { 

     System.out.println("Enter keyword: "); 
     Scanner input = new Scanner(System.in); 
     String firstName = input.nextLine(); 
     String lastName = input.nextLine(); 
     String phone = input.nextLine(); 
     String email = input.nextLine(); 

     Contact inputContact = new Contact(firstName, lastName, phone, email); 


     for (Contact c : contacts) { 
      if (c.equals(inputContact)) { 
       System.out.println(c); 
      } else { 
       System.out.println("No matches."); 
      } 
     } 
    } 
+1

Es sollte auch vorgeschlagen werden, dass sie die Methode '@Override equals()' und '@Override hashcode()' in ihrer Klasse 'Contact' – Draken

+0

@Draken Agree implementieren. Wenn Sie Collection verwenden, sollten equals und hashcode immer außer Kraft gesetzt werden. –

Verwandte Themen