gpt4 book ai didi

java - 如何从 EnumMap 获取数组?

转载 作者:行者123 更新时间:2023-12-01 18:41:32 25 4
gpt4 key购买 nike

在 Java 中,EnumMap 具有恒定的访问时间,因为它们可以通过使用枚举的序数值作为索引的数组来实现。

如果我有一个 EnumMap 如何获取数组?

示例:

enum Abc { A, B, C };
EnumMap<Abc, String> abc = new EnumMap<Abc, String>(Abc.class);
abc.put(Abc.A, "α");
abc.put(Abc.B, "β");
abc.put(Abc.C, "γ");

String[] abcarray = ?;

变量abcarray应包含与以此方式初始化相同的内容:

String[] abcarray = new String[] { "α", "β", "γ" };

我在 documentation 中找不到方法。为什么缺少这样的功能?

最佳答案

您可以通过the Map.values() method访问(请记住,EnumMap 只是一个专门的Map):

String[] abcarray = abc.values().toArray(new String[abc.size()]);

对于为什么不存在这样的方法的原因,我们只能推测。

但是集合框架中有两个常见主题,在这里发挥作用:

  • 通过链接更简单的操作来允许更复杂的操作(这减少了需要实现的操作/方法的总数,同时保持选项可用)
  • 摆脱数组:一旦你进入“收集区”,它们就没有真正的用处了

关于java - 如何从 EnumMap 获取数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19793765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com