2017-09-25 18 views
-2

當我想將項目添加到預定義的散列表時,它通常很簡單。但是,無論何時我想要定義類似addNewCustomer()的方法並嘗試在該方法內使用customerHashtable.put(...);函數,它都不起作用。請幫助我定義一種可以與現有散列表一起工作的方法,並讓我添加新對象(本例中爲客戶)。如何定義一個方法在java中輸入一個新的項目到現有的散列表?

這裏是下面的代碼:

public static void main(String[] args) { 

      Hashtable<Integer, Customer> customerHashtable = new Hashtable<Integer, Customer>(); 
      customerHashtable.put (1, new Customer("david", "+13035003433", new Address("AR", "77555"))); 

      Customer customer = new Customer("mark", "13035003433", new Address("AR", "77200")); 

      public void addNewCustomers(int key, Customer customer) { 
      customerHashtable.put(key, customer); 
      System.out.println(customerHashtable.get(key).toString()); 
      } 
    } 

} 
+0

你將不得不在'customerHashtable'傳遞給函數,或使其成爲類的字段。 –

+1

你的意思是什麼不起作用?你可以再詳細一點嗎? –

+0

@ElliottFrisch我是編程新手。你能解釋一下嗎?我也複製了我想要完成的代碼。 –

回答

0

你必須把你的addNewCutomers()方法你main方法之外,爲您HashTable創建一個類字段。假設你是沒事了靜態情況下,它可能是這樣的:

public class HashtableDemo { 

    static Hashtable<Integer, Customer> customerHashtable; 

    public static void main(String[] args) { 

     customerHashtable = new Hashtable<Integer, Customer>(); 
     customerHashtable.put (1, new Customer("david", "+13035003433", new Address("AR", "77555"))); 

     Customer customer = new Customer("mark", "13035003433", new Address("AR", "77200")); 
     addNewCustomers(2, customer); 
    } 

    public static void addNewCustomers(int key, Customer customer) { 
     customerHashtable.put(key, customer); 
     System.out.println(customerHashtable.get(key).toString()); 
    } 
} 
+0

謝謝你修復它。有效。我有一個問題,但。由於我們使用了靜態方法,是否意味着我們也可以從其他類調用該方法? @TobiasGeiselmann –

+0

正確。既然它是一種「公共」方法,你也可以從任何其他課程中調用它。 –

+0

再次感謝您。 –

相關問題