Java中与PHP非数字键数组相对应的是什么?

4

以下是Java中类似于此PHP数组的等效代码:

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

9
你可以使用 HashMap 或者 Hashtable。不确定该使用哪一个?请查看API或者阅读这篇文章,其中讨论了每个的优缺点。
HashMap<String, String> map = new HashMap<String, String>();
map.put("name", "John");
map.put("email", "john@mail.com");

在我看来,Hashtable 在 Java 1.2 中被 HashMap 取代。它仍然保留以支持遗留代码。 - Peter Lawrey
@Peter - 我倾向于同意你的观点。我已经将我的链接更改为HashMap vs Hashtable的SO问题(它支持HashMap)。 - Catchwa

6

Map接口的实现是Java中关联数组的等价物,但似乎您真正想要的是一个User类,其中包含名称和电子邮件字段。


谢谢你的回答。当然,我会有一个用户类。我的想法是创建一个类似于原始类型或字符串数组的东西,以便我可以将该数组传递给不知道原始对象类型的类。 - bancer

6

请记住,PHP的关联数组会跟踪它们插入的顺序。因此,如果您使用foreach来遍历它们的键,您将以相同的顺序获取它们。

最接近的Java等效物可能是LinkedHashMap


3

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

Map<String, String> map = new LinkedHashMap<String, String>();
map.put("name", "John");
map.put("email", "john@mail.com");

2

它被称为java.util.HashMap


1
Map user = new HashMap();
user.put("name", "John");
user.put("email", "john@mail.com");


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接