问题标签 [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 回答
317 浏览

java - EnumMap.containsValue(null) 返回真 JDK 7

我发现了一个奇怪的行为。我正在使用JDK 1.7. 当我打印map.containsValue(null)

true尽管我的 MAP 中没有任何空值,但它会返回。

0 投票
1 回答
286 浏览

java - Why EnumMap internal arrays are transient

Enum maps are represented internally as arrays. K[] keyUniverse array of keys and Object[] vals array of values. These arrays are transient. Can you tell me why?

0 投票
4 回答
5485 浏览

java - 在 java 中迭代 EnumMap 有什么更好的方法?

假设我已将枚举和相应的 emummap 声明为:

我想迭代MyEnumMap,例如,只是为了Entry逐个打印。

在以下情况下,迭代键的最佳方法(最快)是什么:

  1. 当确保每个常量 inMyEnum是一个 key inMyEnumMap
  2. 当每个常量MyEnum可能是也可能不是MyEnumMap

我想使用MyEnumMap.keySet()或在 foreach 循环之间进行选择MyEnum.values()。任何其他方法都是最受欢迎的。

0 投票
1 回答
1535 浏览

java - Java 多线程套接字客户端/服务器:发送和接收 Enummap 对象

首先,它是一个JavaFX具有经典 MVC 架构的应用程序。此应用程序掷骰子并显示它们。目标是将它们展示给几个客户。我正在使用带有套接字的多线程“回声”服务器来处理客户端。由于在 JavaFX 中我们不能直接通过套接字发送节点,所以我决定发送由客户端生成的参数,然后客户端将它们发送到服务器,以便它可以将参数回显给所有连接的客户端。

下面是它的工作原理 :

首先,创建主服务器线程。它创建一个ServerSocketwhile循环,创建一个新线程来处理连接的客户端。这个主服务器线程有 3 个方法:2 个将跟踪连接的客户端,1 个将传入参数发送到所有连接的客户端。

这是线程处理客户端:

现在在客户端。主应用程序有一个控制器,它将获取两个字段的值并将它们存储在下面Enummap

然后将其发送到以下线程处理与服务器的连接。

客户端线程(至极连接到服务器)

一个典型的场景是这样的:启动服务器 > 启动客户端(连接成功) > 用户按下滚动。当用户按下roll时,控制器创建的一个enummap中存储了2个值,控制器通过send()方法将此enummap转发给客户端线程;并且此方法将枚举映射写入对象输出流。

问题发生在下一步。服务器端处理客户端连接的线程从流中接收枚举映射

但它似乎无法其转换为 Enummap 并引发异常

java.lang.ClassCastException:java.io.ObjectStreamClass 不能转换为 java.util.EnumMap

在 java.lang.Thread.run(未知来源)

我究竟做错了什么 ?

0 投票
1 回答
11939 浏览

java - 初始化 EnumMap 的 Map

我需要在尝试组织 gui 小部件的 JavaFX 应用程序中初始化以下私有成员,但是我不知道正确的语法,请有人告诉我正确的语法:

这是我用于 EnumMap 的枚举

这是我尝试使用此地图或基于服务名称键的EnumMaps组织的小部件的选择,因此以下 4 个复选框和标签的列表属于一起,(我有类似的 JavaFX 小部件用于服务 2 等等。

这是我尝试使用 JavaFX 小部件初始化的私有成员

我可以使用以下方法初始化顶级空 mServiceWidgetMap:

而且我知道我需要将 EnumMaps 初始化为 new EnumMap<>(Connection.class); 但我还需要将成对的小部件放在这些 EnumMaps 的值大小中,我对如何做到这一点感到困惑。

但是我不知道如何初始化 enumMap 值对。非常感谢语法帮助。

编辑 经过一段时间的努力,我想出了以下方法,但肯定必须有一种更简单的方法,比如双括号初始化或其他一些不太冗长的方法。

0 投票
1 回答
198 浏览

java - EnumMap 类型安全吗?

[我投票决定为社区重新开放这个。问题Map.get(Object key) 不是(完全)通用的原因是什么确实确定了问题的根本原因。但对我来说,Stack Overflow 是关于回答问题、访问工作示例代码和支持 API 使用的特定实例——而不是关于创建唯一根本原因的规范。我找不到另一个帖子,可能是因为它的标题。创建枚举是为了提供命名常量的安全替代方案。这个问题破坏了这个好处——没有在 API 中提及,也没有编译器警告。为什么将安全级别降低到命名常量以下?对于枚举用户来说,这个问题很有用——它在谷歌上排名第一。]

这应该编译吗?确实如此,即使我从使用 EnumAlpha 类型初始化的 enumMap 中获取了不同类型 (EnumDelta) 的枚举成员。我认为作为泛型类型,EnumMap 将保证 EnumAlpha 的类型安全。

程序输出:

无效的

0 投票
4 回答
4254 浏览

java - Java中有类似嵌套枚举的东西吗?

我想做一个 Country 枚举,我可以从中访问它的州,我该怎么做?

像这样的东西:

0 投票
0 回答
232 浏览

java - 如何将 hashmap 或 enumMap 与 thymeleaf 一起使用?

我想将 EnumMap 与 Thymeleaf 一起使用。

枚举映射:

Map<MyEnum, Integer> enumMap = new EnumMap<>(MyEnum.class); 这可能是 HashMap 而不是 EnumMap。

我的枚举:

我的控制器返回这个模型:

我的脚本:

但如果我运行它,enumMap 如下所示:

我想如下:

怎么做?

0 投票
1 回答
1252 浏览

java - 如何使用番石榴初始化空的 ImmutableEnumMap?

我有一个Map<ProcessInfoEnum, String>作为参数的构造函数。所以我NO_OPERATION用空的不可变映射初始化变量,如下所示。

现在,由于一些设计更改,我已将构造函数更改EnumMap为如下所示使用:

现在我如何编写相同的等效行,NO_OPERATION但是ImmutableEnumMap它可以初始化空的不可变枚举映射?

由于ImmutableEnumMap是包私有类,所以我不能这样做ImmutableEnumMap.of()。还有其他方法吗?

0 投票
1 回答
169 浏览

java - 为什么 EnumMap 实现检查键的超类?

从上述方法的最后一行可以看出,为什么 EnumMap 实现会检查键的超类?如果没有任何东西可以从枚举中得到,为什么需要这个检查?