hi..i seem to be having problem making array seach work..i have phone book.. there is a search which would find the name and print name also phone number..it works for first name seach but not the others..thanks in advance..
public class phoneDetails
{
String name;
String phoneNum;
public String getName() {return name;}
public String getPhoneNum() {return phoneNum;}
public void setName(String n ) { name = n;}
public void setPhoneNum(String pn) {phoneNum = pn;}
phoneDetails() {} // default constructor
phoneDetails(String n, String pn)
{
name = n;
phoneNum = pn;
}
}
public class phoneDemo
{
public static void main(String[]args)
{
phoneDetails [] phoneBook = new phoneDetails [4];
phoneBook[0] = new phoneDetails ("sarah connor", "0116-325637");
phoneBook[1] = new phoneDetails ("john smith", "0033-3444530");
phoneBook[2] = new phoneDetails ("will green", "7778-876896");
phoneBook[3] = new phoneDetails ("fire starter", "9111-999999");
System.out.println("Name\t\tNumber");
for(int i = 0; i < phoneBook.length;i++)
System.out.println(phoneBook[i].getName() +"\t" +
phoneBook[i].getPhoneNum());
int loc = Search.linearSearch(phoneBook, "will green");
if (loc != -1)
{
System.out.println(phoneBook[loc].name + "\t"+
phoneBook[loc ].phoneNum);
}else
{
System.out.println("Not found");
}
}
}
class Search
{
// define method as static method; we can access it without
// creating an object of this class
// set to -1 for failed search
public static int linearSearch(phoneDetails [] arr, String name)
{
int location = -1;
for(int i = 0; i < arr.length;i++)
{
if (arr[i].name.equals(name)) // use equals() method to compare
// two string objects
// if true, store location
location = i;
break;
}
return location;
}
}