您好,我有一个要求,即 map 对象的排列位置 按照另一张 map 的键的顺序。 这是 map
Map ObjectMap = new HashMap()
ObjectMap .put(id1,Obj1);
ObjectMap .put(id2,Obj2);
ObjectMap .put(id3,Obj3);
ObjectMap .put(id4,Obj4);
现在 rank map 决定了 ObjectMap 中 id 的顺序
Map rankedMap = new HashMap()
rankedMap .put(rank1,id3);
rankedMap .put(rank2,id4);
rankedMap .put(rank3,id1);
rankedMap .put(rank4,id2);
现在我必须按照每个 id 的等级排列 ObjectMap 对象
ObjectMap .put(id3,Obj1);
ObjectMap .put(id4,Obj2);
ObjectMap .put(id1,Obj3);
ObjectMap .put(id2,Obj4);
ids
是 Long
对象
ranks
是 int
对象
请帮忙提前致谢
最佳答案
'rankedMap' 应该是链接 map ,如上所述:
Map rankedMap = new LinkedHashMap()
rankedMap .put(rank1,id3);
rankedMap .put(rank2,id4);
rankedMap .put(rank3,id1);
rankedMap .put(rank4,id2);
接下来,您可以遍历rankedMap中的id来填充rankedObjectMap,它也是一个linkedHashMap:(代码未测试)
Map rankedObjectMap = new LinkedHashMap();
for(Object id : rankedMap.values()){
rankedObjectMap.put(id, objectMap.get(id));
}
关于java - 如何根据另一个 map 键重新排列 map 中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7951352/