【问题标题】:Is there a data structure in Java that can hold 4 or more valuesJava中是否有可以容纳4个或更多值的数据结构
【发布时间】:2017-02-26 06:39:51
【问题描述】:

Java 中是否有可以容纳超过 4 个值的数据结构?

类似

Map<String, String, String, String>;

这需要能够减少我拥有的 if else 语句的数量。我希望能够做到以下几点。

检查数据结构是否包含与某个值匹配的元素,如果匹配,则将链接(字符串)分配给变量,然后将代码和消息添加到与该链接相关的另一个变量。

如果没有,是否有很好的锻炼来实现这一目标?

【问题讨论】:

标签: java arraylist data-structures hashmap


【解决方案1】:

Java 中是否有可以容纳超过 4 个值的数据结构?

有很多。

最简单的可能是String[],如果你像这样实例化它可以容纳4个字符串:

new String[4]

And other Answers 提供了其他可能满足您实际(即未说明)要求的数据结构。

但是,我们可能有可能......更不用说明智......我们列举了所有可以满足您所述要求的可能数据结构。

提示:您应该尝试解释此数据结构需要如何工作。

提示 2:“Map&lt;String, String, String, String&gt; 的行”不能帮助我们理解您的真正需求,因为我们不知道您的意思。


更新 - 你的解释仍然非常模糊,但我认为你需要这样的东西:

Map<String, MyRecord>;

public class MyRecord {
   private String link;
   private String code;
   private String message;

   // add constructor, getters, setters as required
}

【讨论】:

  • 我已经编辑了我最初的问题以描述它需要什么
【解决方案2】:

标准库中没有任何内容,但 Guava 有一个很好的实现;叫

Multimap

如果 Guava 在您的环境中不是一个选项,那么您将不得不重新发明轮子。

【讨论】:

    【解决方案3】:

    使用可以在Apache上使用MultiMap,

    MultiMap 是语义略有不同的 Map。将值放入映射中会将值添加到该键处的集合中。获取一个值将返回一个集合,保存该键的所有值

    MultiMap mhm = new MultiValueMap();
    mhm.put(key, "A");
    mhm.put(key, "B");
    mhm.put(key, "C");
    Collection coll = (Collection) mhm.get(key);
    

    【讨论】:

      【解决方案4】:

      使用地图地图:

      Map<String, Map<String, Map<String, String>>>
      

      【讨论】:

        【解决方案5】:

        阅读您的问题,您似乎只需要一个“键值”对。键是“字符串”,您在问题中将其称为“某个值”。 Value 是一种包装器对象,包含您称为“链接、代码和消息”的三个字符串。

        我建议你可以简单地使用

        HashMap < String, Wrapper >  map;
        

        您可以创建一个类“Wrapper.java”,它可以包含三个字符串,作为实例字段

        String link,code,message;
        

        您可以在构造函数中实例化这些字段,然后可以使用 getter 方法检索它们,也可以使用 setter 来设置您需要的值。您可以为“Wrapper.java”类提供更好的上下文名称。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-11-05
          • 2023-03-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-15
          • 1970-01-01
          相关资源
          最近更新 更多