地图<;字符串,列表<;整数>&燃气轮机;用Java列出

地图<;字符串,列表<;整数>&燃气轮机;用Java列出,java,collections,Java,Collections,是否可以将Map更改为个人列表 List<Integer> list1 = new ArrayList<Integer>(); list1.add(1); list1.add(2); list1.add(3); list1.add(4); List<Integer> list2 = new ArrayList<Integer>(); list2.add(100); list2.add(

是否可以将Map>更改为个人列表

    List<Integer> list1 = new ArrayList<Integer>();
    list1.add(1);
    list1.add(2);
    list1.add(3);
    list1.add(4);
    List<Integer> list2 = new ArrayList<Integer>();
    list2.add(100);
    list2.add(400);
    list2.add(500);
    list2.add(700);

    Map<String, List<Integer>> map = new HashMap<String, List<Integer>>();
    map.put ("account_number", list1);
    map.put ("Amount", list2);

    System.out.println(map);
    map: {Amount=[100, 400, 500, 700], account_number=[1, 2, 3, 4]}

    List<String> list3 = new ArrayList<String>();
    List<int> list4 = new ArrayList<int>();
我试着,map.keySet(),map.values()将它们放在单独的列表(list3,list4)中,但就是没能实现

如何操作?

Map.keySet()返回一组键,您可以使用

new ArrayList<>(map.keySet())
newarraylist(map.keySet())
values()返回值的集合。所以使用

new ArrayList<>(map.values())
newarraylist(map.values())

如果您的意思是将它们放入单独的变量中,那么Java语法将不允许您这样做

另一方面,如果要将地图转换为列表列表,可以执行以下操作:

List<List<Integer>> allLists = new ArrayList<>(map.values());
List allLists=newarraylist(map.values());
另外,如果您正在使用Java 8,并且希望将列表列表展平为一个简单的列表,您还可以查看以下内容:

类似的内容(我是徒手编写的;可能无法编译):


for(final entry)这闻起来很像一个,最初的要求是什么?这个问题规定得很糟糕;根据公认的答案判断,您实际上想要的是一个包含所有键的列表和一个(平面的、非层次的)包含所有值的列表,对吗?在最后,有一个确切的列表,列出了所需的内容。这个问题的措辞可能会更清楚一些,但如果你真正阅读了整个内容,很明显OP试图完成的是什么。@Jamiebiotti是否有可能根据列表3、列表4获得唯一的序列号进入清单5?是的,这似乎有效:我认为你是唯一一个理解OP实际要求的人。
List<List<Integer>> allLists = new ArrayList<>(map.values());
for (final Entry<String, List<Integer> entry : map.entrySet()) {
    final String key = entry.getKey();
    final List<Integer> value = entry.getValue();
    for (final Integer val : value) {
        list3.add(key);
        list4.add(val);
    }
}