我遇到了许多人似乎从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");
Run Code Online (Sandbox Code Playgroud)
所以有时我想存储一个数组,有时候不是.当然,它也可以是只有一个条目而不是字符串的数组,但我只是说.
所以,问题是,如何在HashMap中的数组中存储和获取数组?我知道我几乎坚持使用丑陋的HashMap解决方案,但我仍然无法看到这将如何让我存储数组,我敢肯定我会忽略一些简单的事情.基于我的一个例子会很棒!
UPDATE
我选择使用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 …Run Code Online (Sandbox Code Playgroud) 由于超级灵活和方便,我一直在使用很多Perl哈希.例如,在Perl中我可以执行以下操作:
$hash{AREA_CODE}->{PHONE}->{STREET_ADDR}
Run Code Online (Sandbox Code Playgroud)
我想知道如何用Java完成同样的事情,我想它与HashMap有关?
谢谢,
我想知道Java中的数组是否可以执行以下操作:
int[] a = new int[10];
a["index0"] = 100;
a["index1"] = 100;
Run Code Online (Sandbox Code Playgroud)
我知道我在其他语言中看到了类似的功能,但我并不熟悉任何细节...只是有办法将值与字符串常量相关联而不仅仅是数字索引.有没有办法在Java中实现这样的东西?
我正在从http连接中检索2个字符串.例如名称和描述,并将它们存储在2个不同的数组中.阵列将被我的另一类使用.我创建了两种搜索方法(searchName和searchDesc).一切都工作正常,但我想提高效率,因为我没有这样做.
我想在一个方法中创建一个连接,读取并将内容存储在它们各自的数组中并返回2个数组.
换句话说,我希望应用程序仅通过html代码创建一次连接/读取而不是两次(我当前的代码).我想要一个返回2个值的方法,而不是创建2个方法,每个方法只返回1个值.有可能吗?怎么样?
对于Web服务的开发,我必须按如下方式制作多级关联数组
Array
(
[0] => Array
(
[id] => 1100
[content] => This is content
[creator_info] => Array
(
[id] => 1
[fname] => abc
[lname] => xyz
)
[tag_info] => Array
(
[0] => Array
(
[id] => 3
[name] => my
)
[1] => Array
(
[id] => 4
[name] => you
)
[2] => Array
(
[id] => 5
[name] => your
)
)
[created_date] => 14 JAN 2012
)
[1] => Array
(
[id] => 1101 …Run Code Online (Sandbox Code Playgroud)