问题标签 [enum-map]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java 8:转换 EnumMap到地图
我有一种情况需要将我的复制EnumMap<ExampleEnum,String>
到Map<String, Object>
. Stack Overflow 上的许多示例展示了如何从一种数据类型转换为另一种数据类型,而不是从枚举转换。我试过通过流来做,但没有运气。这是我的代码
现在我想做类似的事情
我如何通过 Stream API 来做到这一点?
java - 将值复制到地图中>
我对这段代码有一些问题。
我正在使用人口统计列表创建地图,但在某些时候我有重复的列表元素。你能看出我在哪里做错了吗?
问候。
java - 策略模式是否比 switch 语句产生更多开销?
我有一个 switch 语句,目前处理大约 20 种不同的数字事件类型。事件 ID 的范围为 1000-5000。该switch
声明变得越来越难以维护和阅读。
我的想法是将每个事件类型放入自己的类中,然后将其存储到EnumMap
. 这种方法将使代码可维护且更易于阅读,但我在这里真正牺牲的是什么?
连接的每个客户端(从 1000 到 5000 个客户端)都将拥有自己的初始化EnumMap
以及所有事件类型类。这是很多开销,不是吗?
在性能方面,使用EnumMap
over a有什么缺点switch
吗?是否javac
类似地编译它们?有时每一毫秒都很重要。
java - 为什么使用 EnumMap 而不是 HashMap
正如我们已经拥有HashMap
的那样,我们为什么要使用EnumMap
?
java - 使用 forEach 迭代 Map 并跟踪索引
假设我们在 java 中有一个 EnumMap,通过使用流的迭代,我们需要使用映射的键、值和索引。我已经按照以下示例实现:
实现这一点的最佳方法是什么?
java - 如何反序列化 EnumMap
我试图弄清楚如何反序列化 EnumMap。到目前为止,我一直在使用 Gson 库进行其他所有操作,并且取得了成功。事实证明这很困难。
这是一个基本的想法:
当我运行上面的代码时,我得到一个java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to java.util.EnumMap
所以在我看来,Gson 库不是在创建 EnumMap,而是在创建 LinkedHashMap 之后尝试进行转换。
所以我想我会去做我自己的反序列化逻辑。这是一个有效的实现。但是..它有点笨拙。
所以它有效,但它并不漂亮。而且非常具体。我真的很想将其抽象为...
有没有人有任何想法:1)如何改进第一种方法?2)如何使抽象版本工作?谢谢!
java - 枚举映射
我正在尝试制作这样的东西。
假设我的EnumMap
样子是这样的EnumMap<Animals, Set<Integer>>
。我有像:Dog
, Fish
,类Cat
的键Animals
。我想打印 AnimalsDog
和Fish
的所有值Cat
。
- 狗的价值: - 1,2,3
- 鱼有值 - 4,5,6
- 猫的价值:- 2,5,7
如您所见,Cat 有 2 个来自 Dog,5 个来自 Fish。所以输出将是:1,2,3,4,5,6,2,5,7
.
我想在向 EnumMap 添加过程期间删除重复项。
所以它应该是这样的:1,2,3,4,5,6,7
. 添加所有值后,我无法稍后过滤。我怎样才能做到这一点?
kotlin - kotlin,如何将 EnumMap 转换为常规 Map
需要调用一个apiMap<String, String>
但是密钥只能来自已注册的密钥,因此为已注册的密钥定义了一个枚举:
并首先构建 EnumMap<> 以强制执行键类型:
问题1,有没有构造函数可以直接用数据构建enumMap?
然后需要将 EnumMap 转换为 Map<> 以便 api.log() 接受它
问题2:有没有更简单的方法将 enumMap 映射到常规映射?
java - 为什么 EnumMap 不是 Java 中的 SortedMap?
EnumMap<K extends Enum<K>, V>
在 Java 中,按照关联枚举的定义清楚地排序,您也可以在 javadoc 中看到:
枚举映射以其键的自然顺序(声明枚举常量的顺序)维护。这反映在集合视图( 、 和 )返回的迭代keySet()
器entrySet()
中values()
。
我需要的是SortedMap
使用枚举作为键类型。我想使用headMap()
or之类的方法firstKey()
,但我想从EnumMap
s 增加的 cpu+memory 性能中获利。ATreeMap
在这里听起来太多了。
问题:这只是在实施中遗漏了,是懒惰(源自AbstractMap
)还是有充分的理由为什么EnumMap
不是SortedMap
?
java - 使用杰克逊反序列化 EnumMap
我已将@JsonAnySetter
注释添加到addProperty
方法
但是在反序列化时我收到以下错误
com.fasterxml.jackson.databind.JsonMappingException:方法'addProperty()'上的'any-setter'注释无效:第一个参数不是String或Object类型,而是java.lang.Enum
如果我使用 String 类型的键将映射更改为简单的 HashMap,那么它可以正常工作。
有人可以让我知道反序列化到 EnumMap 需要做什么吗