ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java EnumMap putAll()方法具有什么功能呢?

2022-07-29 14:05:00  阅读:145  来源: 互联网

标签:em Java Sex 枚举 EnumMap public putAll


转自:

http://www.java265.com/JavaCourse/202204/2758.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中putAll()方法的功能简介说明,如下所示:

EnumMap中putAll()方法的功能:
    向map中批量添加一个map元素

EnumMap中putAll()方法的语法:
    public void putAll(Map map) ;
参数
   Map map:待向集合中添加的元素
 
返回值说明:
   此方法无返回值,会在原map上进行修改

例:

package com.java265.other;
import java.util.EnumMap;
public class Test15 {
	/**
	 * java265.com 示例 EnumSet putAll方法示例分享
	 */
	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, "小敏");

		EnumMap<Sex, String> em2 = new EnumMap<Sex, String>(Sex.class);
		em2.put(Sex.THREE, "小明3");
		em2.put(Sex.FOUR, "小敏4");

		em.putAll(em2);
		System.out.println("em:" + em);
	}
}
------运行以上代码,将输出以下信息------
em:{MALE=小明, FEMALE=小敏, THREE=小明3, FOUR=小敏4}

标签:em,Java,Sex,枚举,EnumMap,public,putAll
来源: https://www.cnblogs.com/java265/p/16493500.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有