Calling functions from different classes

Posted by A Ron Hubbard Clevenger on Programmers See other posts from Programmers or by A Ron Hubbard Clevenger
Published on 2012-09-23T00:11:17Z Indexed on 2012/09/23 3:49 UTC
Read the original article Hit count: 321

Filed under:
|

I'm writing a program and I'm supposed to check and see if a certain object is in the list before I call it. I set up the contains() method which is supposed to use the equals() method of the Comparable interface I implemented on my Golfer class but it doesn't seem to call it (I put print statements in to check). I can't seem to figure out whats wrong with the code, the ArrayUnsortedList class I'm using to go through the list even uses the correct toString() method I defined in my Golfer class but for some reason it won't use the equals() method I implemented.

//From "GolfApp.java"    
public class GolfApp{
ListInterface <Golfer>golfers = new ArraySortedList<Golfer> (20);
Golfer golfer;
//..*snip*..
if(this.golfers.contains(new Golfer(name,score)))
    System.out.println("The list already contains this golfer");
else{
    this.golfers.add(this.golfer = new Golfer(name,score));
    System.out.println("This golfer is already on the list");
}

//From "ArrayUnsortedList.java"
protected void find(T target){
    location = 0;
    found = false;

    while (location < numElements){
        if (list[location].equals(target))  //Where I think the problem is                       
        {
            found = true;
            return;
        }
        else 
            location++;
    }
 }

 public boolean contains(T element){
    find(element);
    return found;
 }


//From "Golfer.java"    
public class Golfer implements Comparable<Golfer>{
//..irrelavant code sniped..//
public boolean equals(Golfer golfer)
{
    String thisString = score + ":" +  name;  
    String otherString = golfer.getScore() + ":" + golfer.getName() ;
    System.out.println("Golfer.equals() has bee called");

    return thisString.equalsIgnoreCase(otherString);
}

public String toString()
{
    return (score + ":" + name);
}

My main problem seems to be getting the find function of the ArrayUnsortedList to call my equals function in the find() part of the List but I'm not exactly sure why, like I said when I have it printed out it works with the toString() method I implemented perfectly.

I'm almost positive the problem has to do with the find() function in the ArraySortedList not calling my equals() method. I tried using some other functions that relied on the find() method and got the same results.

© Programmers or respective owner

Related posts about java

Related posts about list