Java 根据第二个映射中键的顺序对映射进行排序

Java 根据第二个映射中键的顺序对映射进行排序,java,Java,我有两个LinkedHashMaps,sayMap1,Map2两个地图中的键相同,但顺序可能不同 例如: Map1: Hello, Value1 How, Value2 Are, Value3 You, Value4 Hello, Value1 You, Value4 Are, Value3 How, Value2 Hello, Value1 How, Value2 Are, Value3 You, Value4 Map2: Hello, Value1 How, Value2 Are, V

我有两个
LinkedHashMaps,
sayMap1Map2两个地图中的键相同,但顺序可能不同

例如:

Map1:

Hello, Value1
How, Value2
Are, Value3
You, Value4
Hello, Value1
You, Value4
Are, Value3
How, Value2
Hello, Value1
How, Value2
Are, Value3
You, Value4
Map2:

Hello, Value1
How, Value2
Are, Value3
You, Value4
Hello, Value1
You, Value4
Are, Value3
How, Value2
Hello, Value1
How, Value2
Are, Value3
You, Value4
我想按键对Map2进行排序,使其顺序与Map1相同

我想要的结果是:

Map2:

Hello, Value1
How, Value2
Are, Value3
You, Value4
Hello, Value1
You, Value4
Are, Value3
How, Value2
Hello, Value1
How, Value2
Are, Value3
You, Value4

只需通过迭代
map1
的键并为每个键获取
map2
的对应值,创建一个新的
LinkedHashMap

Map<String,String> sorted =
    map1.keySet()
        .stream()
        .collect(Collectors.toMap(Function.identity(),
                                  map2::get,
                                  (v1,v2)->v1,
                                  LinkedHashMap::new));
Map排序=
map1.keySet()
.stream()
.collect(Collectors.toMap(Function.identity()),
map2::获取,
(v1,v2)->v1,
LinkedHashMap::new));

您无法对
LinkedHashMap
进行排序。您可以迭代
map1
并创建一个新的
Map
,插入顺序为
map1
,但这仍然不算作已排序