2016-07-23 31 views
1

讓類getChoice實現LinkedHashMap。 讓方法addCh實現choice.put。 讓一些類choice1和choice2擴展類選擇並將元素傳遞給getChoice.map。每次我將一個對象傳遞給Map時,它似乎都不會更新,而是會以相同的名稱再次創建。我需要先將所有元素存儲在地圖中,然後將其保存到文件中。我怎樣才能做到這一點?我的代碼到目前爲止。地圖上的Java商店值

public class GetChoice{ 

Map<String, String> choice = new LinkedHashMap<String, String>(); 

public void addChoice(SomeClass obj1, SomeOtherClass obj2) { 

    if (obj2 instanceof Choice1) { 
     this.choice.put(obj2.toString(), "choice1"); 
    } else if (obj2 instanceof Choice2) { 
     this.choice.put(obj2.toString(), "choice2"); 
    } else { 
     //sysout not found 
    } 

    System.out.println("\n" + choice); 
} 

編輯:我處理它通過聲明地圖爲靜態,後@dasblinkenlight提到創建的每個電話。 非常感謝你們。

+0

這對我來說不是很清楚你想做什麼。你能舉一個例子說明你想如何使用'GetChoice'類以及你期望的結果是什麼? –

+1

請顯示你調用'new GetChoice()'的代碼。我在我的回答中假裝我知道每次調用addChoice時都會這樣做,因爲這是您看到的行爲的唯一合理解釋。 – dasblinkenlight

回答

1

choice地圖多少 別樣的使用OBJ1 ..是的實例字段GetChoice對象。每當您製作新的GetChoice時,都會創建一個沒有數據的全新地圖。

爲了將數據保存在addChoice調用中的地圖上,您需要創建GetChoice對象一次,然後多次在同一個對象上調用addChoice

1

似乎不更新,而是要與同名

爲確保您的參數是交叉過來,讓您使用作爲主要的 OBJ 2再次創造

例如: 執行此操作:

addChoice(1, 11); 
addChoice(2, 3.14); 
addChoice(3, 45); 
addChoice(1111, 45); 
addChoice(111111, 45); 
addChoice(1234, 45); 

會產生3元列表... 11,PI和45,無論