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

Ker*_*ker 5 java yaml bukkit

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

classes:
 beginner: 1000
 proplayer: 2000
 admin: 5000
Run Code Online (Sandbox Code Playgroud)

我知道classes按键组给我一个Map,但顺序与显示屏显示的不同。

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

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

Zby*_*byl 4

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

classes: !!omap
  - beginner: 1000
  - proplayer: 2000
  - admin: 5000
Run Code Online (Sandbox Code Playgroud)

请参阅YAML规范Example 2.26. Ordered Mappings1.0、1.11.2

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