问题标签 [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.

0 投票
2 回答
1044 浏览

java - Java 8:转换 EnumMap到地图

我有一种情况需要将我的复制EnumMap<ExampleEnum,String>Map<String, Object>. Stack Overflow 上的许多示例展示了如何从一种数据类型转换为另一种数据类型,而不是从枚举转换。我试过通过流来做,但没有运气。这是我的代码

现在我想做类似的事情

我如何通过 Stream API 来做到这一点?

0 投票
1 回答
72 浏览

java - 将值复制到地图中>

我对这段代码有一些问题。

我正在使用人口统计列表创建地图,但在某些时候我有重复的列表元素。你能看出我在哪里做错了吗?

问候。

0 投票
0 回答
47 浏览

java - 策略模式是否比 switch 语句产生更多开销?

我有一个 switch 语句,目前处理大约 20 种不同的数字事件类型。事件 ID 的范围为 1000-5000。该switch声明变得越来越难以维护和阅读。

我的想法是将每个事件类型放入自己的类中,然后将其存储到EnumMap. 这种方法将使代码可维护且更易于阅读,但我在这里真正牺牲的是什么?

连接的每个客户端(从 1000 到 5000 个客户端)都将拥有自己的初始化EnumMap以及所有事件类型类。这是很多开销,不是吗?

在性能方面,使用EnumMapover a有什么缺点switch吗?是否javac类似地编译它们?有时每一毫秒都很重要。

0 投票
2 回答
9984 浏览

java - 为什么使用 EnumMap 而不是 HashMap

正如我们已经拥有HashMap的那样,我们为什么要使用EnumMap

0 投票
0 回答
76 浏览

java - 使用 forEach 迭代 Map 并跟踪索引

假设我们在 java 中有一个 EnumMap,通过使用流的迭代,我们需要使用映射的键、值和索引。我已经按照以下示例实现:

实现这一点的最佳方法是什么?

0 投票
2 回答
777 浏览

java - 如何反序列化 EnumMap

我试图弄清楚如何反序列化 EnumMap。到目前为止,我一直在使用 Gson 库进行其他所有操作,并且取得了成功。事实证明这很困难。

这是一个基本的想法:

当我运行上面的代码时,我得到一个java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to java.util.EnumMap

所以在我看来,Gson 库不是在创建 EnumMap,而是在创建 LinkedHashMap 之后尝试进行转换。

所以我想我会去做我自己的反序列化逻辑。这是一个有效的实现。但是..它有点笨拙。

所以它有效,但它并不漂亮。而且非常具体。我真的很想将其抽象为...

有没有人有任何想法:1)如何改进第一种方法?2)如何使抽象版本工作?谢谢!

0 投票
1 回答
61 浏览

java - 枚举映射> - 如何为每个键设置唯一值

我正在尝试制作这样的东西。

假设我的EnumMap样子是这样的EnumMap<Animals, Set<Integer>>。我有像:Dog, Fish,类Cat的键Animals。我想打印 AnimalsDogFish的所有值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. 添加所有值后,我无法稍后过滤。我怎样才能做到这一点?

0 投票
2 回答
1052 浏览

kotlin - kotlin,如何将 EnumMap 转换为常规 Map

需要调用一个apiMap<String, String>

但是密钥只能来自已注册的密钥,因此为已注册的密钥定义了一个枚举:

并首先构建 EnumMap<> 以强制执行键类型:

问题1,有没有构造函数可以直接用数据构建enumMap?

然后需要将 EnumMap 转换为 Map<> 以便 api.log() 接受它

问题2:有没有更简单的方法将 enumMap 映射到常规映射?

0 投票
2 回答
299 浏览

java - 为什么 EnumMap 不是 Java 中的 SortedMap?

EnumMap<K extends Enum<K>, V>在 Java 中,按照关联枚举的定义清楚地排序,您也可以在 javadoc 中看到:

枚举映射以其键的自然顺序(声明枚举常量的顺序)维护。这反映在集合视图( 、 和 )返回的迭代keySet()entrySet()values()

我需要的是SortedMap使用枚举作为键类型。我想使用headMap()or之类的方法firstKey(),但我想从EnumMaps 增加的 cpu+memory 性能中获利。ATreeMap在这里听起来太多了。

问题:这只是在实施中遗漏了,是懒惰(源自AbstractMap)还是有充分的理由为什么EnumMap不是SortedMap

0 投票
2 回答
282 浏览

java - 使用杰克逊反序列化 EnumMap

我已将@JsonAnySetter注释添加到addProperty方法

但是在反序列化时我收到以下错误

com.fasterxml.jackson.databind.JsonMappingException:方法'addProperty()'上的'any-setter'注释无效:第一个参数不是String或Object类型,而是java.lang.Enum

如果我使用 String 类型的键将映射更改为简单的 HashMap,那么它可以正常工作。

有人可以让我知道反序列化到 EnumMap 需要做什么吗