首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LinkedHashMap顺序

LinkedHashMap顺序
EN

Stack Overflow用户
提问于 2013-08-06 20:08:34
回答 2查看 210关注 0票数 2

当地图对象被访问时,订单是否仍然保证,如下面所示,位置1和位置2?

代码语言:javascript
复制
    //.... 
    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;

    }
    //....
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-06 20:28:10

如果Map对象的具体实例是LinkedHashMap,则为是。不管你怎么处理它。对象将保持其数据的有序性,如果只转换为Map或甚至Object,或者将其传递给方法,则实现不会改变。它将在内部保留一个LinkedHashMap。如果将其转换为Object,您可能不再看到它是一个。

假设您不知道源代码,唯一不能保证的是someOtherMethod返回您的LinkedHashMap。它也可以重新订购它。

方法不应该被信任,除非它指定了这些事情。但是,由于您知道这里的源代码,所以您可以保证它是您的LinkedHashMap按顺序排列。

票数 3
EN

Stack Overflow用户

发布于 2013-08-06 20:14:05

根据文档

哈希表和映射接口的链接列表实现,具有可预测的迭代顺序。

因此,即使在事物被插入和移除之后,这个顺序也应该在你想要做的任何事情中持续存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18089502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档