当如下所示的位置 1 和 2 访问 map 对象时,顺序是否仍能得到保证?
//....
public void firstMethod(){
Map<K,V> sortedMap=new LinkedHashMap<K,V>();
sortedMap.put(h,g);
//....
Map<K,V> anotherMap=someOtherMethod(sortedMap);
// order of anotherMap when read ...2
}
public Map<K,V> someOtherMethod(Map<K,V> someMap){
someMap.put(a,b);
//order of someMap when read ...1
//.....
return someMap;
}
//....
最佳答案
如果您的 Map
对象的具体实例是 LinkedHashMap
是的。你用它做什么并不重要。该对象将保持其数据有序,并且如果您仅转换为 Map
甚至 Object
或将其传递给方法,实现不会改变。它将在内部保留一个 LinkedHashMap
。如果将其转换为 Object
,您可能不再看到它是一个。
假设您不知道源代码,唯一不能保证的是 someOtherMethod
返回您的 LinkedHashMap
。它还可以重新排序。
除非方法指定了这些内容,否则不应信任该方法。但由于您知道这里的源代码,因此您可以保证它是您的 LinkedHashMap
的完美顺序。
关于java - LinkedHashMap顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18089502/