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,
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, 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
,但这仍然不算作已排序