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
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