Java中是否存在可以容纳4个以上值的数据结构?
这就像
那样Map<String, String, String, String>;
这需要能够减少if else语句的数量。我希望能够做到以下几点。
检查数据结构是否包含与某个值匹配的元素,如果是,则将链接(字符串)分配给变量,然后将代码和消息添加到与该链接相关的另一个变量。
如果不是有良好的锻炼来实现这一目标吗?
答案 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)
答案 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;。