2014-10-01 25 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);