资讯专栏INFORMATION COLUMN

Map容器大小影响key的索引

tinyq / 783人阅读

摘要:单元测试偶然发现的一个问题显式指定了大小判等失败可见如果显式指定了容器大小会影响的索引。

单元测试偶然发现的Map一个问题

        Map map1 = new HashMap<>();
        map1.put("aaa", "foo");
        map1.put("bbb", "bar");
        map1.put("ccc", "foobar");
        System.out.println(map1); // {aaa=foo, ccc=foobar, bbb=bar}

        Map map2 = new HashMap<>(map1);
        assertEquals(map1.values().toArray(new String[]{}), map2.values().toArray(new String[]{}));
        System.out.println(map2); // {aaa=foo, ccc=foobar, bbb=bar}

        Map map3 = new HashMap<>(3); //显式指定了大小
        map3.putAll(map1);
        System.out.println(map3); // {bbb=bar, ccc=foobar, aaa=foo}

        assertEquals(map1.values().toArray(new String[]{}), map3.values().toArray(new String[]{})); // 判等失败

可见如果显式指定了map容器大小 会影响key的索引。如下所示

默认大小



key index
aaa 3
ccc 10
bbb 14
显式指定了大小3



key index
aaa 3
ccc 2
bbb 2

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/65111.html

相关文章

  • 通过面试题,让我们来了解Collection

    摘要:说一说迭代器通过集合对象获取其对应的对象判断是否存在下一个元素取出该元素并将迭代器对象指向下一个元素取出元素的方式迭代器。对于使用容器者而言,具体的实现不重要,只要通过容器获取到该实现的迭代器的对象即可,也就是方法。 前言 欢迎关注微信公众号:Coder编程获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识!** 本章主要介绍Collection集合相关知识,结合面试中会提到...

    HelKyle 评论0 收藏0
  • Java013-集合

    摘要:集合框架重点理解用于存储数据的容器。集合容器在不断向上抽取过程中。出现了集合体系。,删除将集合中的元素全删除,清空集合。删除集合中指定的对象。注意删除成功,集合的长度会改变。作用用于取集合中的元素。是集合特有的迭代器。是单列集合是双列集合 集合框架(重点理解):用于存储数据的容器。特点:1:对象封装数据,对象多了也需要存储。集合用于存储对象。2:对象的个数确定可以使用数组,但是不确定怎...

    qpal 评论0 收藏0
  • 1、Map接口 2、模拟斗地主洗牌发牌

    摘要:中的集合称为单列集合,中的集合称为双列集合。洗牌通过数字完成洗牌发牌发牌将每个人以及底牌设计为将最后张牌直接存放于底牌,剩余牌通过对取模依次发牌。存放的过程中要求数字大小与斗地主规则的大小对应。 01Map集合概述 A:Map集合概述: 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同  a:Collection中的集...

    付伦 评论0 收藏0
  • HashMap、HashSet、Hashtable区别

    摘要:这样做的目的是提高取对象的效率。在单线程情况下效率较高在的多线程情况下,同步操作能保证程序执行的正确性。 突然发现整理了很多笔记,应该放这里做备用 Hashtable和HashMap 主要区别:线程安全性,同步(synchronization),以及速度。 HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null。Hashta...

    zhangxiangliang 评论0 收藏0
  • Java笔记-容器源码(持续更新)

    摘要:加载因子是哈希表在其容量自动增加之前可以达到多满的一种尺度。当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表进行操作即重建内部数据结构,从而哈希表将具有大约两倍的桶数。成员变量每个对由封装,存在了对象数组中。 虽是读书笔记,但是如转载请注明出处 http://segmentfault.com/blog/exploring/ .. 拒绝伸手复制党 LinkedLis...

    mrli2016 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<