【Java集合框架】篇五:Map接口
2023-06-13 09:15:29 时间
1. Map及实现类特点
Map:存储key-value
- HashMap:线程不安全,效率高,key和value都可以为null,底层使用 数组+单向链表+红黑树 结构(jdk8)。
- LinkedHashMap:是HashMap的子类,在HashMap结构的基础上增加了一对双向链表,用于记录添加元素的先后顺序,便于遍历操作,开发中,对于频繁的遍历操作,建议使用此类。
- Hashtable:古老实现类,线程安全,效率低,key和value都不可以为null,底层使用 数组+单向链表 结构存储(jdk8)。
- Properties:是Hashtable的子类,其key和value都是String类型,常用来处理属性文件。将某些数据和代码分离,程序执行前会先读取该配置文件。
- TreeMap:底层使用红黑树存储,可以按照添加key-value中的key元素指定规则进行遍历。考虑使用:自然排序、定制排序。
2. HashMap中元素的特点
- HashMap中的所有key之间是无序的、不可重复的。所有key就构成了一个Set集合。—>因而key所在类要重写hashCode()和equals()方法。
- HashMap中所有的value之间是无序的、可重复的。所有的value就构成了一个Collection集合。—>因而value所在类要重写equals()方法。
- HashMap中的一对key-value,构成了一个Entry对象。
- HashMap中的所有Entry对象之间是无序的、不可重复的。所有的Entry对象就构成了一个Set集合。
3. Map中的常用方法
添加、修改操作:
添加、修改使用的方法一样
- Object put(Object key,Object value):将指定key-value添加到(或修改)当前map对象中
- void putAll(Map m):将m中的所有key-value对存放到当前map中
删除操作:
- Object remove(Object key):移除指定key的key-value对,并返回value
- void clear():清空当前map中的所有数据
元素查询的操作:
- Object get(Object key):获取指定key对应的value
- boolean containsKey(Object key):是否包含指定的key
- boolean containsValue(Object value):是否包含指定的value
- int size():返回map中key-value对的个数
- boolean isEmpty():判断当前map是否为空
- boolean equals(Object obj):判断当前map和参数对象obj是否相等
元视图操作的方法(遍历):
- Set keySet():返回所有key构成的Set集合
- Collection values():返回所有value构成的Collection集合
- Set entrySet():返回所有key-value对构成的Set集合
相关文章
- java 上传文件接口_Java接口实现文件上传
- java map 二维数组_Java二维数组实现简单Map
- java 异步调用接口_Java接口异步调用[通俗易懂]
- java运行机制是什么_JAVA运行机制
- java public interface_Java 接口interface的基础[通俗易懂]
- 手机版java编译器_Java编译器[通俗易懂]
- java中map根据value找key_Java Map和Map<String, Object>类型,map通过value找key
- Java中关于interface的不常见小技巧
- 大数据必学Java基础(五十九):Map接口源码部分
- JAVA对象转map_java处理字符串类型的map
- java判断文件是否为图片格式_java读取图片流
- java数据结构——集合框架及Collection、Map接口的介绍
- Java接口是什么意思_JAVA接口
- Java Map 键值对排序 按key排序和按Value排序详解编程语言
- 解决Linux下重启Java程序的方法(linux重启java)
- 自动提交MySQL事务中的Java自动提交实践(mysql事务java)
- 处理实现Redis Java中键值对的过期处理(redisjava过期)
- Linux和Java联手构建编程世界(linux.java)
- 部署Java开发下的Linux部署(java开发linux)
- 深入学习:Linux下Java环境建设与配置(linux下java环境)
- Linux与Java调用C编程实战(linux java调c)
- MySQL之Java实现主从复制(java mysql主从)
- Linux平台上C语言接口调用Java语言实现(linux c调java)
- Java程序调用Linux系统命令实现更多功能(java调用linux命令)
- Oracle搭建Java开发环境的步骤(oracle中java)
- php&java(一)
- Java多线程同步锁机制与synchronized深入解析
- 2个java希尔排序示例