首页 > 基础资料 博客日记
Java EnumMap entrySet()方法具有什么功能呢?
2023-08-07 18:37:55基础资料围观204次
转自:
http://www.java265.com/JavaCourse/202204/2763.html
EnumMap简介:
EnumMap是保存枚举类型的Map
map的key是枚举类型
这点在类定义的时候就已经声明好了EnumMap<K extends Enum<K>, V>
如何不是枚举类型编译会出错。
例:定义了一个Enum类 JdbcType。
public enum JdbcType {
INT,NUMBER,VARCHAR,VARCHAR2,LONG,BLOB,CHAR;
}
EnumMap优点说明:
1 相比HashMap,EnumMap的性能和速度要快的多
EnumMap里面的数据结构是数组,获取的数据的时候特别快
而且添加的数据的时候(一般用put(K,V)),这里面的并不像一般数组一样,当插入到中间的位置时候,要数组整体移动(一般实现依次向后移动)。EnumMap实现不需要,因为 数组在EnumMap实例化的时候就已经初始化好了,要做的就是对原来的oldValue进行覆盖,这样无论获取数据还是添加和删除数据都要快的多。这里特别提示一下,为什么 EnumMap能够用数组这得益于EnumMap的key是枚举类型,枚举类类型中每一种类型,在声明的时候都有确定的位置,可以通过对应的位置确定的枚举类型。通过该方法获得位置key.ordinal();
2.枚举类型的相应的类型更加明确
key对应的范围更加明确
如的key是string
那么你的键范围无法确定。所以能够用EnumMap,尽量用EnumMap这也是一种代码优化方案’
EnumMap的大量用到各种框架中
在Mabatis的TypeHandlerRegistry中就用到了EnumMap:
public final class TypeHandlerRegistry {
private final Map<JdbcType, TypeHandler<?>> JDBC_TYPE_HANDLER_MAP = new EnumMap<JdbcType, TypeHandler<?>>(JdbcType.class);
下文笔者讲述EnumMap entrySet()方法的功能简介说明,如下所示:
EnumMap类entrySet()方法的功能: 返回一个Set集合,里面的内容包含枚举映射 EnumMap entrySet()方法的语法: public Set entrySet();
例:
package com.java265.other; import java.util.EnumMap; import java.util.Map; import java.util.Set; public class Test15 { /** * java265.com 示例 EnumSet equals方法示例分享 */ public enum Sex { MALE, FEMALE, THREE, FOUR }; public static void main(String[] args) { EnumMap<Sex, String> em = new EnumMap<Sex, String>(Sex.class); em.put(Sex.MALE, "小明"); em.put(Sex.FEMALE, "小敏"); em.put(Sex.THREE, "第3个元素"); em.put(Sex.FOUR, "第四个元素"); Set<Map.Entry<Sex,String>> se = em.entrySet(); se.forEach((s) -> { System.out.println("key:" + s.getKey()); System.out.println("value:" + s.getValue()); }); } } ---------运行以上代码,将输出以下信息----- key:MALE value:小明 key:FEMALE value:小敏 key:THREE value:第3个元素 key:FOUR value:第四个元素
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签: