【问题标题】:What is Java equivalent for PHP array with non-numeric keys?具有非数字键的 PHP 数组的 Java 等效项是什么?
【发布时间】:2011-05-26 19:59:43
【问题描述】:

这样的 php 数组的 Java 等效项是什么:

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

【问题讨论】:

    标签: java php arrays hashmap


    【解决方案1】:

    您可以使用HashMapHashtable。不确定使用哪一个?阅读 API 或查看this question,其中讨论了每种方法的优缺点。

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

    【讨论】:

    • 恕我直言 Hashtable 在 Java 1.2 中被 HashMap 取代。它保留用于旧版支持。
    • @Peter - 我倾向于同意你的观点。我已将链接更改为 HashMap 与 Hashtable 的 SO 问题(它位于 HashMap 的一侧)。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 感谢您的回答。当然,我会有用户类。我的想法是拥有类似数组的原始类型或字符串,这样我就可以将该数组传递给一个不知道原始对象类型的类。
        【解决方案5】:
        Map user = new HashMap();
        user.put("name", "John");
        user.put("email", "john@mail.com");
        

        【讨论】:

          【解决方案6】:

          它叫做 java.util.HashMap

          【讨论】:

            【解决方案7】:
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-12-29
            • 2011-03-11
            • 1970-01-01
            • 2014-08-15
            • 2023-03-12
            相关资源
            最近更新 更多