java - 如何从YAML中获取有序的HashMap?

标签 java yaml bukkit

我正在尝试从我的 config.yml 文件中检索 Map,但找不到保留先前设置的按键顺序的方法。

classes:
 beginner: 1000
 proplayer: 2000
 admin: 5000

我知道 classes 的键集为我提供了一个 Map,但顺序与显示的不同。

我需要它按顺序排列,因为这是玩家将升级到的类别的顺序。 因此,如果他是初学者,他需要升级到职业玩家,依此类推。

我需要某种方法来解决它,这样我就可以知道初学者位于索引 0,以便猜测玩家将进入的下一个类(class),在本例中为职业玩家(索引 1),但我还需要检索类(class)的 int 值,以便向玩家收取他要移动到的类(class)的金额。

最佳答案

YAML 中的有序映射可以这样指定:

classes: !!omap
  - beginner: 1000
  - proplayer: 2000
  - admin: 5000

参见Example 2.26. Ordered Mappings在 YAML 规范中( 1.01.11.2 )

请注意,您的 YAML 解析器不一定支持它,但很可能会支持(SnakeYAML 确实支持它)。
用于结果的实际类型也特定于您的 YAML 解析器,但应映射到该语言中最自然的有序映射类型。

关于java - 如何从YAML中获取有序的HashMap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32189665/

相关文章:

ruby-on-rails - 从 routes.rb 重定向一批 url

java - 为什么这个对象不能被序列化?

java - 无法访问 ArrayList 内容

Java XML 字符串解析为对象

Java:如何从第二个方法中获取变量以在第三个方法中工作?

java - 使用 NMS 和反射的 ClassCastException

java - 更换标志后面的 block

java - 使用maven-shade-plugin时如何将DefaultImplementationEntries添加到MANIFEST?

amazon-web-services - 客户端错误: An error occurred (AccessDeniedException)

Python AppEngine - 如何在 app.yaml 中传递查询字符串