对于具有非数字键的PHP数组,Java等价于什么?

对于具有非数字键的PHP数组,Java等价于什么?,java,php,arrays,hashmap,Java,Php,Arrays,Hashmap,php数组的Java等价物如下: $user = array("name" => "John", "email" => "john@mail.com"); 试试,或者更具体地说是一个。它被称为java.util.HashMap您可以使用或。不知道该用哪一个?阅读API或查看其中讨论了每种API的优缺点 Map user = new HashMap(); user.put("name", "John"); user.put("email", "john@mail.com"); Ha

php数组的Java等价物如下:

$user = array("name" => "John", "email" => "john@mail.com");

试试,或者更具体地说是一个。

它被称为java.util.HashMap

您可以使用或。不知道该用哪一个?阅读API或查看其中讨论了每种API的优缺点

Map user = new HashMap();
user.put("name", "John");
user.put("email", "john@mail.com");
HashMap<String, String> map = new HashMap<String, String>();
map.put("name", "John");
map.put("email", "john@mail.com");
HashMap map=newhashmap();
地图。放置(“姓名”、“约翰”);
map.put(“电子邮件”)john@mail.com");

映射接口的一个实现是关联数组的Java等价物,但似乎您真正想要的是一个带有名称和电子邮件字段的用户类。

请记住,PHP的关联数组跟踪插入顺序。因此,如果您使用
foreach
对它们的键进行迭代,您将以相同的顺序获得它们


最接近的Java等价物可能是。

我建议您使用LinkedHashMap。与HashMap相比,它的主要优点是保留了添加键的顺序。对于HashMap,它们以伪随机顺序出现,这使得读取它们更加困难

Map<String, String> map = new LinkedHashMap<String, String>();
map.put("name", "John");
map.put("email", "john@mail.com");
Map Map=newlinkedhashmap();
地图。放置(“姓名”、“约翰”);
map.put(“电子邮件”)john@mail.com");

IMHO哈希表在Java 1.2中被HashMap取代。保留它是为了遗产支持。@Peter-我倾向于同意你的看法。我把我的链接改成了一个关于HashMap vs Hashtable的问题(在HashMap的旁边),谢谢你的回答。当然,我会有用户类。我的想法是使用类似于数组的基本类型或字符串,这样我就可以将该数组传递给一个不知道原始对象类型的类。