gpt4 book ai didi

java - 关联数组和 Java

转载 作者:搜寻专家 更新时间:2023-10-30 21:36:36 24 4
gpt4 key购买 nike

我遇到了很多来自 PHP 的人似乎都面临的同样问题,缺乏体面且易于使用的关联数组解决方案。我在这里阅读了基本上所有建议使用 HashMap 的问题,例如 Q:Java associative-array

但是,我认为所提到的解决方案不能解决我的问题。我会解释。

我有一个包含 250 个项目(国家/地区)的列表,我想为其存储数据。数据的长度未定义,这意味着它可以在每个“列”中包含多个条目,有时没有条目,有时有 4 个,等等。

在 PHP 中我可以这样做:

$country_data = new array();
$country_data["nl"]["currency"] = "euro";
$country_data["nl"]["languages"] = "Dutch";
...
$country_data["us"]["currency"] = "US dollar";
$country_data["us"]["languages"] = array("English", "Spanish");

所以有时我想存储一个数组,有时又不想。当然它也可以是一个只有一个条目而不是字符串的数组,但我只是说。

那么,问题来了,如何在 HashMap 的数组中存储和获取数组?我知道我几乎坚持使用丑陋的 HashMap 解决方案,但我仍然看不出这将如何让我存储数组,我确信我忽略了一些简单的事情。一个基于我的例子会很棒!

更新

我选择了 HashMaps 的 HashMaps这样做的原因是我需要能够轻松地监督一切,并在需要时更改几行值。这很灵活,我可以轻松地根据国家代码、语言获取国家名称,或者我可以在需要时获取 country_data HashMap,或所有国家名称等。

public class iso_countries {  
Map<String, Object> country_data = new HashMap<String, Object>();
Map<String, String> country_name = new HashMap<String, String>();
Map<String, String[]> country_idd = new HashMap<String, String[]>();
Map<String, String[]> country_cid = new HashMap<String, String[]>();

public iso_countries(){
country_name.put("nl", "Netherlands");
country_idd.put("nl", new String[]{"+31"});
country_cid.put("nl", new String[]{"#31#", "*31#"});
setData(country_name, country_cid, country_idd);
// 249 * 4 lines more and later...
}//end method

public void setData(Map country_name, Map country_cid, Map country_idd){
country_data.put("name", country_name);
country_data.put("idd", country_idd);
country_data.put("cid", country_cid);
}//end method

public String getCountryName(String countryCode){
String name = country_name.get(countryCode);
return name;
}//end method

public String[] getCountryIdd(String countryCode){
String prefix[] = country_idd.get(countryCode);
return prefix;
}//end method

public String[] getCountryCid(String countryCode){
String cid[] = country_cid.get(countryCode);
return cid;
}//end method
}//end class

最佳答案

也许我误解了你的问题,但为什么不创建你自己的对象来保存数据,然后将它们存储在 HashMap 中呢?

Java 是一种面向对象的语言,那么为什么不使用它最著名的工具:对象!

关于java - 关联数组和 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10856397/

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