Java中是否存在可以容纳4个或更多值的数据结构

时间:2016-10-17 10:12:29

标签: java arraylist data-structures hashmap

Java中是否存在可以容纳4个以上值的数据结构?

这就像

那样
Map<String, String, String, String>;

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

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

如果不是有良好的锻炼来实现这一目标吗?

5 个答案:

答案 0 :(得分:6)

  

Java中是否存在可以容纳4个以上值的数据结构?

它们很多。

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

new String[4]

其他答案提供可能符合您的实际(即未说明)要求的其他数据结构。

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

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

提示2:&#34; Map<String, String, String, String>&#34;并不能帮助我们理解您的真实需求,因为我们不知道您的意思。

更新 - 您的解释仍然非常模糊,但我认为您需要这样的内容:

Map<String, MyRecord>;

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

   // add constructor, getters, setters as required
}

答案 1 :(得分:4)

标准库中没有任何内容,但是Guava有很好的实现;称为

Multimap

如果Guava不适合您的环境,那么您将不得不重新发明轮子。

答案 2 :(得分:2)

使用可以在Apache上使用MultiMap,

MultiMap是一种语义略有不同的Map。将值放入地图会将值添加到该键的Collection。获取值将返回一个Collection,其中包含放入该键的所有值

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

答案 3 :(得分:1)

使用地图地图:

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

答案 4 :(得分:0)

阅读你的问题,就像你只需要一个关键值&#39;对。密钥是&#39;字符串&#39;,您已将其称为“特定值”&#39;在你的问题。 Value是一种包装三个字符串的包装器对象,您可以将其称为“链接”,“代码”和“消息”。

我建议你可以简单地使用

HashMap < String, Wrapper >  map;

你可以创建一个班级&#39; Wrapper.java&#39;它可以包含三个字符串,作为实例字段

String link,code,message;

您可以在构造函数中实例化这些字段,稍后可以使用getter方法检索它们,也可以使用setter来设置所需的值。您可以为课程提供更好的上下文名称&#39; Wrapper.java&#39;。