2013-10-26 27 views
-1

我實現了adresbook和adress類!我想實現一個方法「searchForename」和「searchSurename」,這是我之前用「insert」添加的搜索元素。我用ArrayList來查看其他實現,它搜索對象或元素,但大多數情況下他們真的讓我感到困惑,因爲太多的代碼沒有任何解釋。包含新的問題!:在ArrayList中實現toString方法和構造函數

第三編輯

第三次嘗試:

import java.util.ArrayList; 


public class Adressbook { 

    private ArrayList<Adress> adresses = null; 

    public Adressbook(){ 
     adresses = new ArrayList<Adress>(); 
    } 

    public void insert(Adress adress){ 
     adresses.add(new Adress("Marvin","Wildman","Blastreet",9,12345,"Blatown")); 
     adresses.add(new Adress("Anne","Wildman","Woodstreet",10,6789,"Exampletown")); 
     adresses.add(new Adress("William","Wildman","Eaglestreet",11,73975,"Blubvalley")); 
    } 


    public void searchSurename(String surename){ 
     for(Adress s: adresses){ 
      if("Green".equals(surename)){ 
      System.out.println(s); 
      } 
     } 

    } 

    public void searchForename(String forename){ 
     for(Adress s: adresses){ 
      if("Anne".equals(forename)){ 
      System.out.println(s); 
      } 
     } 
    } 

    public String toString(){ 
     return null; 

    } 

} 

我有幾個問題:

1.How並在Adressbook toString方法是什麼樣子?

2.Adress類的toString如何看起來像?

3.構造函數在Adress類中看起來是否正確?

4.可以實現比這更簡單/更高效的搜索方法嗎?如果不正確,我該如何改變它?

忘記我的課地址:

public class Adress { 
    public static String forename; 
    public static String surename; 
    public static String street; 
    public static int houseno; 
    public static int code; 
    public static String state; 



    public Adress(String forename, String surename, String street, int houseno, int code,String state){ 
     this.forename = forename; 
     this.surename = surename; 
     this.street = street; 
     this.houseno = houseno; 
     this.code = code; 
     this.state = state; 
    } 



    public String toString(){ 
     return null; 
    } 

} 
+0

瞭解[我如何在Java中比較字符串(http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –

+0

謝謝!我是這個主題的新手。我有很多要學習的。 –

+0

在附註地址是拼寫地址。變量名稱中的錯字最好避免。 –

回答

4

你的方法是一個static方法,這就是爲什麼你不能在靜態上下文中使用this,因爲在一個靜態方法的調用沒有對象實例。

public static String searchSurename // static method 

您需要從您的方法聲明中刪除static

如果你不能做上述改變,那麼你必須使你的ArrayList adressesstatic

另外,作爲便箋,請使用equals()進行字符串值比較。 ==用於對象參照比較。

if(this.adresses.get(i).getSurename().equals(surename)) {