java - LinkedHashMap顺序

标签 java dictionary linkedhashmap

当如下所示的位置 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/

相关文章:

java - 有没有办法在Java中调用 "seal"方法? (它可能不会被覆盖)?

java - 如何验证父类的 super.method() 的调用?

java - Jooq CustomTypes 生成默认类型 POJO

python - 我尝试用另一个定义中的另一个字典迭代嵌套字典,但 Django 不渲染它

java - 从 Java 中的 List 中过滤重复的 Object 类型

java - 静态 Linkedhashmap 还是 Sharedpreference?

java - 如何比较2个LinkedHashMap并获得键和值的差异?

java - 如何将变量从 php 文件传递​​到 Android Activity ?

C# 在清除/设置为 null 后重新填充字典

java - Java中使用LinkedHashMap替换StringBuilder中的字符