嵌套映射排序,JAVA,innerMap不从OuterMap更改键

嵌套映射排序,JAVA,innerMap不从OuterMap更改键,java,sorting,map,nested,Java,Sorting,Map,Nested,我想把嵌套的地图分类为 地图 整数,字符串,整数:FirstKey是ID,innerKey是Name,innerValue是PHONE。 我正在这样做: Set<Entry<Integer,Map<String,Integer>>> set = add.entrySet(); List<Entry<Integer,Map<String,Integer>>> list = new A

我想把嵌套的地图分类为

地图

整数,字符串,整数:FirstKey是ID,innerKey是Name,innerValue是PHONE。 我正在这样做:

           Set<Entry<Integer,Map<String,Integer>>> set = add.entrySet();
           List<Entry<Integer,Map<String,Integer>>> list = new ArrayList<>(set);
           Set<Entry<String,Integer>> set2 = add2.entrySet();
           List<Entry<String,Integer>> list2 = new ArrayList<>(set2);
           Collections.reverse(list);
           Collections.reverse(list2);
并循环查看结果, 如果我有ID、姓名、电话的前3个输入,我有结果:

id 3-电话2,名称I2; id 2-电话1,姓名I; id 1-电话5,名称P

下一个排序应该是名称,根据ID应该改变,但它不起作用

以及如何使用名称进行排序以获得如下结果:

id 2-电话1,姓名I; id 3-电话2,名称I2;
id 1-电话5,名称P

首先,如果您不将包装器对象用于像您这样需要复杂和链式数据结构的情况,那么您的代码将看起来非常混乱。您应该为包装器数据结构指定有意义的名称。这将使您的代码更易于阅读和理解

为了表示映射,您可以使用2个包装器类,内部映射将是其中包装器1表示字符串、整数组合的映射。您可以将外部映射定义为map,其中Wrapper2表示整数和映射对


要整理数据,请使用TreeMap。只要您为包装器实例提供适当的比较逻辑,您的映射将自动使用TreeMap进行排序。

请给我展示一下包装器的示例,因为我是Java新手?