文档章节

HashMap集合中相同Key被覆盖问题

闊苡訆涐囍醣
 闊苡訆涐囍醣
发布于 2017/04/06 14:35
字数 141
阅读 22
收藏 0

示例:

    public static void main(String[] args) {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("admin", "admin");
        map.put("ytx", "ytx");
        map.put("admin", "admin222");
        
        for (String s : map.keySet()) {
            System.out.println(s+"=="+map.get(s));
        }
    }

输出结果:
ytx==ytx
admin==admin

解决方案:HashMap用IdentityHashMap代替

Map<String, Object> map = new HashMap<String, Object>();

Map<String, Object> resultMap = new IdentityHashMap<String, Object>();

    public static void main(String[] args) {
        Map<String, Object> map = new IdentityHashMap<String, Object>();
        map.put("admin", "admin");
        map.put("ytx", "ytx");
        map.put(new String("admin"), "admin222");
        
        for (String s : map.keySet()) {
            System.out.println(s+"=="+map.get(s));
        }
    }

输出结果:
admin==admin222
ytx==ytx
admin==admin

 

注:put的值必须是两个不同的对象

© 著作权归作者所有

闊苡訆涐囍醣
粉丝 4
博文 40
码字总数 8992
作品 0
徐汇
后端工程师
私信 提问
java 集合----Map、Collection(List、Set)

接口:红色;实现类:黑色字体 一、 Collection集合 Collection _____Set(HashSet) _____SortedSet(TreeSet) _____List(ArrayList,LinkedList,Vector ) Collection:集合层次中的根接口,J...

LYQ1990
2016/04/28
27
0
HashMap的底层实现

HashMap实际上是一个“链表的数组”的数据结构,每个元素存放链表头结点的数组,即数组和链表的结合体。HashMap底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个HashMap的时候...

Iter_迟cH1
2016/08/18
38
0
再谈HashMap与HashTable,引入TreeMap浅谈

(1)首先说明HashMap与HashTable: HashMap是线程不安全的,是对HashTable的轻量级实现,都是对双列数据的存储。HashMap是在jdk1.2引进的对Map的实现,HashTable出现较早。 HashMap允许null-...

hanzhankang
2014/01/17
0
0
集合——HashMap的工作原理

http://www.importnew.com/16301.html 好的链接 HashMap的工作原理? 1.HashMap的底层结构是数组加链表; a.HashMap包含一个Entry(key,value,next,hash)的内部类,key/value放入HashMap的时候...

亚特兰缇斯
2015/03/03
0
0
Java集合系列之HashMap

Java集合系列之HashMap Hello,大家好,喜欢看我文章的小伙伴应该都知道作者正在写Java并发编程系列的文章,但是今天要插播一些Java集合系列的文章,之后也会一直并行的写Java并发编程系列文章...

2017/12/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

开发函数计算的正确姿势 —— Fun validate 语法校验排错指南

1. 前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函...

阿里云云栖社区
3分钟前
0
0
java 面试知识点笔记(十三)多线程与并发-原理 下篇

java线程池,利用Exceutors创建不同的线程池满足不同场景需求: newSingleThreadExecutor() 创建一个单线程的线程池。这个线程池只有一个线程在工作,也就是相当于单线程串行执行所有任务。如...

断风格男丶
5分钟前
0
0
Jenkins构建多节点之Linux节点

系统管理-管理节点-新建Linux节点 点击Linux节点运行,产生下面这些日志,表示连接成功: [02/09/18 05:20:36] [SSH] Opening SSH connection to 192.168.1.209:22. [02/09/18 05:20:37] [S...

shzwork
5分钟前
0
0
43个区块链开发工具【2019】

本文列出2019年最新整理的用于区块链开发的43种流行的开发库、开发工具与开发框架。 1、MetaMask 人人都知道MetaMask。MetaMask是一个浏览器扩展,可以让你用普通的浏览器访问以太坊区块链。...

geek12345
8分钟前
0
0
为Redis配置自定义fastJson序列化工具类

alibaba.fastjson内部已经提供了对Redis存储对象序列化的工具类GenericFastJsonRedisSerializer,但是该工具在反序列化时返回为Object,我们仿照GenericFastJsonRedisSerializer来自定义一个...

Bingo许
24分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部