首页 > 基础资料 博客日记

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

2023-08-06 20:47:24基础资料围观292

Java资料网推荐Java EnumMap values()方法具有什么功能呢?这篇文章给大家,欢迎收藏Java资料网享受知识的乐趣

转自:

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

EnumMap values()方法的功能:
       返回一个Collection 此集合中存储EnumMap中的值

EnumMap values()方法的语法:
       public Collection values();

注意事项
    1.values()方法在java.util包中可用
    2.values()方法用于获取此枚举映射的Collection视图中的所有值
    3.values()方法是一种非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息
     在Collection中收集值时,values()方法不会引发异常

例:

package com.java265.other;
import java.util.Collection;
import java.util.EnumMap;
public class Test15 {
	/**
	 * java265.com 示例 EnumSet values方法示例分享
	 */
	public enum Sex {
		MALE, FEMALE
	};

	public static void main(String[] args) {
		EnumMap<Sex, String> em = new EnumMap<Sex, String>(Sex.class);
		// 通过使用put()方法是
		// dd在EnumMap中的链接值
		em.put(Sex.MALE, "小明");
		em.put(Sex.FEMALE, "小敏");

		Collection<String> co = em.values();
		System.out.println(co);
	}
}
---------运行以上代码,将输出以下信息------
[小明, 小敏]

文章来源:https://www.cnblogs.com/java265/p/16493528.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云