Java 在HashMap中打印已排序的列表值

Java 在HashMap中打印已排序的列表值,java,hashmap,Java,Hashmap,我有两份清单: List<String> list1 = new ArrayList<>(); List<String> list2 = new ArrayList<>(); list1.add("Jonny", "Adam", "Dave"); list2.add("Katie, Toni", "Sam"); List list1=new ArrayList(); List list2=新的ArrayList(); 列表1.添加(“乔尼”、“

我有两份清单:

List<String> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();

list1.add("Jonny", "Adam", "Dave");
list2.add("Katie, Toni", "Sam");
List list1=new ArrayList();
List list2=新的ArrayList();
列表1.添加(“乔尼”、“亚当”、“戴夫”);
清单2.添加(“凯蒂、托尼”、“萨姆”);
我希望每个列表都有一个键,因此我定义了一个HashMap:

HashMap<Integer, List<String>> hmap = new HashMap<Integer, List<String>>();

hmap.put(1, list1);
hmap.put(2, list2);
HashMap hmap=newhashmap();
hmap.put(1,列表1);
hmap.put(2,列表2);
我一直在搜索和阅读,我无法理解如何打印该键,然后打印列表中与该键相关的所有元素(按顺序)。HashMap不对值进行排序

有没有更好的办法


我只想打印key=1的值,TreeMap保持键的顺序

List<String> list1 = Arrays.asList("Jonny", "Adam", "Dave");
List<String> list2 = Arrays.asList("Katie", "Toni", "Sam");

Map<Integer, List<String>> hmap = new TreeMap<>();

hmap.put(2, list2);
hmap.put(1, list1);

for (Map.Entry<Integer, List<String>> e : hmap.entrySet()) {

    System.out.print("Key : " + e.getKey() + " values: ");
    e.getKey();

    for (String s : e.getValue()) {
        System.out.print(s + " ");
    }
    System.out.println();
}
List list1=Arrays.asList(“Jonny”、“Adam”、“Dave”);
list2=Arrays.asList(“Katie”、“Toni”、“Sam”);
Map hmap=newtreemap();
hmap.put(2,列表2);
hmap.put(1,列表1);
对于(Map.Entry e:hmap.entrySet()){
System.out.print(“Key:+e.getKey()+”值:);
e、 getKey();
for(字符串s:e.getValue()){
系统输出打印(s+“”);
}
System.out.println();
}

您可以添加您的预期输出吗?因为我不太明白
hmap.get(1)
获取键
1
的列表
System.out.println(hmap.get(1))
打印与键
1
关联的列表。否,
HashMap
不保存已排序的条目
LinkedHashMap
维护插入顺序,
TreeSet
根据键进行排序。使用
LinkedHashMap
以插入顺序保存条目,或使用
TreeMap
以按键按其自然顺序或指定的
比较器对条目进行排序。对于每个列表,如果希望对元素进行排序,则应该对其进行排序。使用
list.sort()