[英]How can I convert a HashMap<String, ArrayList<String>> to a HashMap<String, String[]>?
我有一個HashMap<String, ArrayList<String>>
。 我試圖將其轉換為HashMap<String, String[]>
。
HashMap<String, ArrayList<String>> arrayListMap = new HashMap<>();
HashMap<String, String[]> arrayMap = new HashMap<>();
for (Map.Entry<String, ArrayList<String>> entry : arrayListMap.entrySet()) {
arrayMap.put(entry.getKey(), entry.getValue().toArray());
}
但是,對於entry.getValue().toArray()
,我的IDE給了我錯誤:
Wrong 2nd argument type. Found: 'java.lang.Object[], required 'java.lang.String[]'.
我不知道為什么,因為arrayListMap
指定我將使用String
s。
為什么這不起作用,我該如何解決?
ArrayList
重載了toArray
方法。
第一個表單toArray()
將返回一個Object[]
。 這不是你想要的,因為你不能將Object[]
轉換為String[]
。
第二種形式toArray(T[] a)
將返回一個數組,該數組使用您傳入其中的任何數組鍵入。
您需要在此處使用第二個表單,以便正確鍵入數組。
arrayMap.put(entry.getKey(), entry.getValue()
.toArray(new String[entry.getValue().size()]));
HashMap<String, ArrayList<String>> arrayListMap = new HashMap<>();
HashMap<String, String[]> arrayMap = new HashMap<>();
for (Map.Entry<String, ArrayList<String>> entry : arrayListMap.entrySet()) {
arrayMap.put(entry.getKey(), entry.getValue().toArray(new String[entry.getValue().size()]));
}
entry.getValue()。toArray()將返回對象數組“object []”
但是需要String []。
所以需要使用方法entry.getValue()。toArray(T [] a)返回T [] //泛型arg類型
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.