2017-01-03 86 views
1

我想將一個intString的數組放入HashMap。這可能嗎?什麼是適當的方式呢?將多個數據類型存儲在單個HashMap中

這是我的HashMap:

Map<String, String> stringMap = new HashMap<>(); 

    stringMap.put("Text","fish"); 
    stringMap.put("Diet","false"); 
    stringMap.put("CookingTime", "60"); 
    stringMap.put("OptionId", [7,8,8]); 

我知道這條線是錯了 - 我怎麼保存在HashMap一個數組?

stringMap.put("OptionId", [7,8,8]); 
+1

因爲這並不是聲明數組的語法。 –

+2

你好你把這個數組作爲字符串像「7,8,8」,然後將此字符串轉換爲數組使用 String OptionId =「7,8,8」 String [] yourArray = date.split(「[,]」 「); –

+0

我知道它,因爲我問我想知道如何將數組的int與字符串一起放在HashMap中 – tahaDev

回答

2

您可以通過執行

someMap.put("OptionId", new int[]{7,8,8}); 

否則,你將需要數組中的這些值返回函數實例化Java中的數組。

對於您的情況:如果你想創建多個數據類型的HashMap中您可以使用

HashMap<String, Object> map = new HashMap<String, Object>(); 

然後你可以把你想要的任何東西在

map.put("key1", "A String"); 
map.put("key2", new int[]{7,8,8}); 
map.put("key3", 123); 

除了現在棘手的部分是你不知道什麼是什麼,所以你需要使用instanceof來解析地圖,除非你知道某個鍵的類型是什麼類型,那麼你可以只是cast它的類型。

if(map.get("key1") instanceof String) 
    String s = (String) map.get("key1"); // s = "A String" 

int[] arr = (int[]) map.get("key2"); // arr = {7,8,8} 
相關問題