将Map <string,object =“”>转换为List <list <string >>

时间:2018-06-21 11:10:20

标签: java

我有以下对象:

Map<String, Map<String, String>> object;

序列化时,我得到了:

{
    "0" : { "0" : "str1", "1" : "str2", ... },
    "1" : { "0" : "str1", "1" : "str2", ... },
    ...
}

问题是:如何将Map转换为List<List<String>>

这是我当前的解决方案:

List<List<String>> listlist;
...
for (Map<String, String> mss : object.values()) {
    List<String> list = ArrayList<String>();
    for (String s : mss.values) {
        list.add(s);
    }
    listlist.add(list);
}

显而易见的解决方案是遍历Map并提取值,但是有什么棘手的方法吗?

1 个答案:

答案 0 :(得分:0)

您需要遍历每个对象,没有其他方法,但是您也可以使用Streams,您可以找到一个更清晰的对象:

Map<String, Map<String, String>> object;
List<List<String>> list = object.values().stream().map(m -> new ArrayList<>(m.values))
                                                  .collect(Collectors.toList());