2014-10-01 24 views
0

我目前有一個SortedMap,我想把它的values()轉換成數組列表。將SortedMap的值轉換爲arrayList

Map<String, String> myMap = transformToMap(myObject); 
Collection<String> values = myMap.values(); 

值如下:[[1,2,3,4]]

我怎麼把值代入[1,2,3,4]儘可能簡單?

+3

使用將Collection作爲參數的ArrayList構造函數:'ArrayList(Collection c)' – gtgaxiola 2014-10-01 18:19:35

+0

@gtgaxiola請寫出該答案作爲答案,以便我可以對其進行提升。 – 2014-10-01 18:20:07

+0

@DavidWallace謝謝你好,先生! – gtgaxiola 2014-10-01 18:20:43

回答

9

使用該ArrayList構造函數集合作爲參數:

ArrayList(Collection<? extends E> c)

實施例:

public static void main(String[] args) throws Exception { 
    Map<String, String> myMap = new TreeMap<>(); 
    myMap.put("a","1"); 
    myMap.put("b","2"); 
    myMap.put("c","3"); 
    Collection<String> values = myMap.values(); 
    List<String> val = new ArrayList(values); 
    System.out.println(val); 
} 

,其輸出:

[1, 2, 3] 
+0

所以我用這個,我的arrayList convertedList作爲[[1,2,3,4]]仍然回來。 @gtgaxiola – PhoonOne 2014-10-01 18:34:50

+0

我相信是你的'transformToMap(myObject);'有什麼區別...' – gtgaxiola 2014-10-01 18:39:25

+0

@JennyC檢查你的'SortedMap'如何實現values()..作爲一個測試,創建一個簡單的'TreeMap'實現'SortedMap'),當你打印'myMap.values()'方法時,你會看到你不會得到雙括號 – gtgaxiola 2014-10-01 18:42:59

0

嘗試使用方法的addAll。 arraylist.addAll(myMap.values);