【问题标题】:Java enummap confusionJava 枚举映射混淆
【发布时间】:2017-04-09 06:07:47
【问题描述】:

您好,谁能帮我理解以下代码行?

      private Map<EnumType, Pair<Long, Long>> processToProductLineAndIndustryMap = new EnumMap<EnumType, Pair<Long, Long>>(
        Collections.unmodifiableMap(Stream.of(
                new SimpleEntry<>(EnumType.SOME_TYPE,
                    Pair.of(Question.getProductLineQuestionId(), Question.getAdvertiserIndustryQuestionId())))
                    .collect(Collectors.toMap((e) -> e.getKey(), (e) -> e.getValue()))));

我是新手。上网查了好几篇文章都弄不明白。

我想创建一个不可修改的map&lt;EnumType, Pair&lt;Long, Long&gt;&gt;。基于枚举类型,我想获取一对 Longs 并查看它是否包含特定的 long 。请帮我找出最适合我用例的数据结构

【问题讨论】:

  • 您正在使用EnumMaps 构造函数创建一个新地图。
  • 上面给出错误“对象的getKey()方法未定义”?
  • Collections.unmodifiableMap 什么都不做。这似乎是一种使用一个条目创建地图的复杂方法。
  • 我将根据我的要求编辑这个问题。请帮我选择最好的数据结构。 :)

标签: java collections enums enum-map


【解决方案1】:

您可以使用Collections.singletonMap(key, value)

private Map<EnumType, Pair<Long, Long>> processToProductLineAndIndustryMap = new EnumMap<EnumType, Pair<Long, Long>>(
        Collections.singletonMap(EnumType.SOME_TYPE, Pair.of(Question.getProductLineQuestionId(), Question.getAdvertiserIndustryQuestionId())));

【讨论】:

  • 感谢周末的帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多