2012-03-04 10 views
2

二重リンクリストの検索方法の作業。私は例外を取得していますが、私はそれらを得ることなく、リストをトラバースする方法を見つけ出すように見えることはできません。..二重リンクリスト検索方法

public void searchEntryNode() { 
    System.out.println("I'll search through each entry to pull up what you're looking for "); 
    System.out.println("Type in what you want "); 
    String searchEntry = keyboard.next(); 

    EntryNode n = head; 
    while (head != null) { 
     if (head.getFirstName().contains(searchEntry) || head.getLastName().contains(searchEntry) || head.getPhoneNum().contains(searchEntry) || head.getEmail().contains(searchEntry)) { 
      System.out.println("Found a matching entry"); 
      System.out.println(n.getFirstName() + " " + n.getLastName() + " " + n.getEmail() + " " + n.getPhoneNum()); 
     } 

     if (head.getNext() != null) { 
      head = head.getNext(); 
     } 
     else { 
       System.out.println("That's all we found "); 
       System.out.println(); 
       menu(); 
     } 
    } 
} 
+0

何の例外:

あなたは(あなたがnull.someMethod()を行うことはできません)逆参照する前に、それぞれがnullではありませんこれを行うの

一つの方法を確認する必要がありますか?どこ? –

+0

例外はありますか? – jmishra

+0

私は、nullポインタ例外を取得する:スレッドの例外AddressList.menuでAddressList.searchEntryNodeで "メイン" のjava.lang.NullPointerException \t(AddressList.java:87) \t(AddressList.java:160)のAddressListで \t。 AddressList.menuでaddEntryNode(AddressList.java:48) \t(AddressList.java:156) AddressList.addEntryNodeで\t(AddressList.java:48) AddressList.menuで\t(AddressList.java:156) \tでAddressList.addEntryNode(AddressList.java:48) \t at AddressList.menu(AddressList.java:156) 01 AddressDriver.main(AddressDriver.java:9) – jackie

答えて

2

は、私はあなたの行数を持っていないので、私はここに盲目的に推測しているが、私

if (head.getFirstName().contains(searchEntry) || head.getLastName().contains(searchEntry) || head.getPhoneNum().contains(searchEntry) || head.getEmail().contains(searchEntry)) 

それはあなたのエントリのいずれかがどちらかgetFirstNamegetLastNamegetPhoneNum、またはgetEmailためnullを返す可能性が高いです。このラインはあなたの問題であることを推測するつもりは「メートル。

string firstName = head.getFirstName(); 
string lastName = head.getLastName(); 
string phoneNum = head.getPhoneNum(); 
string email = head.getEmail(); 

if ((firstName != null && firstName.contains(searchEntry)) 
    || (lastName != null && lastName.contains(searchEntry)) 
    || (phoneNum != null && phoneNum.contains(searchEntry)) 
    || (email != null && email.contains(searchEntry))) 
+0

何かが最初に動作しないことを確認するためにそれを得ました。ありがとう! – jackie

関連する問題