Java Map使用浅谈
来源:互联网 发布:python http接口 编辑:程序博客网 时间:2024/06/05 04:17
在Java中对于存储多组两个值对,首先想到的是使用容器Map。下面看一下《Java编程思想》中给出的容器类库的简化图:
一般常用的是HashMap、LinkedHashMap和TreeMap。HashMap提供了最快的查找技术,它保存元素是无序的。TreeMap是按照key比较结果的升序保存键值的。LinkedHashMap则是按照插入顺序保存的,同时也保存了HashMap的查询速度。
HashMap、LinkedHashMap和TreeMap存储时key值是不能重复的。在添加元素时,都会比较key值是否存在,通过equals方法比较,也就是值是否相等。如果之后再添加相同key值,那么后添加key值对应的value会覆盖之前的value值,但存储顺序不变。
如果想要存储key值相同的键值对时怎么办?一种方法是key、value互换角色存储,也就是value变为key、key变为value存储。但是如果value值也不是唯一的怎么办?另一种方法就是用到类库的简化图中的一个IdentityHashMap类,此类可以存储key值相等的键值对。此处key值相等,但是引用要不等,如果引用相等那么还是会覆盖,在添加元素时会把key值与已有key进行引用比较(==),如果引用相等则覆盖原有key键对应的value值。例如IdentityHashMap对象在添加(“aa”, 1)和 (“aa”, 2)时,”aa”的引用是同一个,会被覆盖。想要存储多个key值相同的字符串,就要使用 (new String(“aa”), 1) 和 (new String(“aa”), 2)。
注意IdentityHashMap不是按照元素添加顺序存储的。如果想要按添加的顺序存储的话,IdentityHashMap显然是不能满足。一种方式是扩展IdentityHashMap类,像LinkedHashMap那样使用链表来实现顺序保存。这种方式相对麻烦点。如果只是想按添加顺序存储数据、key值可以重复,并且可以访问数据的话,那么不用Map存储。可以通过类存储key、value值,然后存储到List中就能到达目的。
- Java Map使用浅谈
- JAVA数据结构Map浅谈!!
- Android使用Google Map浅谈
- 浅谈Java——map
- Java Map浅谈(jdk1.7)
- 浅谈java Map 和java Bean
- 浅谈java中map遍历算法
- 浅谈java集合类(二)【Map】
- java Map的使用
- java map 使用详解
- java - Map使用笔记
- java map的使用
- java Map的使用
- java map的使用
- Java Map简单使用
- java类集 map-使用
- 浅谈Java中的Set、List、Map的区别
- 浅谈Java中的Set、List、Map的区别
- 事物—事物的传播性与Spring事物传播特性
- 简单明了的 NLPIR汉语分词系统 搭建流程
- HTML面试题及答案
- windows安装PanoramaTools
- 畅通工程(最小生成树&并查集)
- Java Map使用浅谈
- MaterialDesign学习篇(八),掌握RecyclerView和SwipeRefreshLayout
- tomcat中如何配置https
- Machine Learning In Action
- setCompoundDrawables不显示图片
- Git-error: dst refspec branch matches more than one
- 训练集和测试集的产生方法
- A
- 笔记6:链表(三种:头指针、头结点、头结点循环)