Java集合之Map
来源:互联网 发布:蒙古打到欧洲哪里知乎 编辑:程序博客网 时间:2024/06/11 13:04
一、特点
(1)保存两种数值,key和value(key不允许重复)
(2)keySet()方法,返回map里所有key组成的set集合
(3)value可重复,放入重复的key时value会被覆盖
(3)基本功能:
import java.util.HashMap;import java.util.Map;public class MapTest {public static void main(String[] args) {Map map =new HashMap();map.put("java", 100);map.put("android", 101);map.put("ios", 102);System.out.println(map);System.out.println("是否包含ios的key: "+map.containsKey("ios"));//遍历key-value对for(Object key:map.keySet()){System.out.println(key+"->"+map.get(key));}}}
二、HashMap和Hashtable实现类
(1)Hashtable线程安全,HashMap线程不安全(HashTable和Vector一样古老)
(2)HashMap性能较高
(3)Hashtable不允许null作为key和value,HashMap可以
(4)HashMap和Hashtable不能保证key-value的顺序
(5)判断value相等根据equals()返回true
(6)与HashSet类似,尽量不要使用可变对象作为HashMap和Hashtable的key,如果一定要用,尽量不要在程序中修改key的可变对象(会导致无法准确的找到被修改过的key)
三、LinkedHashMap类
(1)使用双向链表维护key-value的顺序
(2)可避免对key-value的顺序进行排序(只要插入时保持顺序就行了)
import java.util.LinkedHashMap;public class LinkedHashMapTest {public static void main(String[] args) {LinkedHashMap scores=new LinkedHashMap();scores.put("语文", 90);scores.put("数学",70);scores.put("应用", 99);scores.forEach((key,value)->System.out.println(key+"->"+value));}}
四、SortedMap接口和TreeMap类
(1)红黑树数据结构
(2)自然排序,定制排序
五、WeakHashMap
与HashMap基本相似,区别在于HashMap保留了对实际对象的强引用,只要HashMap不被销毁key所引用的对象就不会被垃圾回收,也不会自动删除这些key-value对。而WeakHashMap保留的是弱引用,可能被垃圾回收,也可能自动删除。
六、IdentityHashMap
比较严格,当且仅当key严格相等(key1==key2)才认为相等。HashMap只要equals()返回true即可。
七、EnumMap
与EnumSet类似
八、性能分析
1、HashMap比Hashtable快
2、TreeMap比HashMap和Hashtable慢
3、一般应多使用HashMap
4、LinkedHashMap比HashMap慢一点
5、EnumMap性能最好,但只能使用同一个枚举类的枚举值作为key
0 0
- Java集合之-Map集合
- java之Map集合
- Java集合之Map
- Java集合之Map
- Java集合之Map
- Java集合之Map
- JAVA 集合之MAP
- java集合之Map
- java 集合之Map
- Java集合之Map
- Java集合之Map
- Java集合之Map
- Java集合之Map
- java集合之Map
- java集合之Map
- Java集合之Map
- Java集合之Map
- Java-集合之Map
- G
- 筛素法
- RabbitMQ hello world带有确认功能的生产者
- python实例方法、静态方法、类方法
- 如何写一个简单的分页
- Java集合之Map
- 点击a标签,返回上一页
- Java
- CODE【VS】3118 高精度练习之除法(大数除以大数模板)
- 链表的动态实现
- 白话空间统计二十三:回归分析番外-ArcGIS中的OLS(二)
- Session
- ubuntu-opencv自动安装脚本
- phpmyadmin管理数据库时的权限问题