java - 如何根据另一个 map 键重新排列 map 中的项目

标签 java hashmap

您好,我有一个要求,即 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);

idsLong 对象

ranksint 对象

请帮忙提前致谢

最佳答案

'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/

相关文章:

Java包引用而不改变已实现的应用程序

java - 线程 "main"java.util.InputMismatchException : using scanner 中出现异常

java - 通过 JPA 注释的聚合关系

java - Struts2 在 JSP 中从 session 映射迭代

java - JAXB继承+XMLAdapter(HashMap)

java - 如何在 Java 中对来自不同对象的等键进行同步

java - 在Java中检测字符串中重复字符的最有效方法是什么?

java - Android NullPointerException 和 GetDatabaseLocked

java - 等效于 Linux 上的数据保护 API

Java 8 Sort HashMap,其中映射键是 <String, Integer> 的对象