【问题标题】:Java code equivalent to following php codeJava 代码等价于以下 php 代码
【发布时间】:2011-12-01 05:55:53
【问题描述】:

以下 php 语法的 java 等效代码可能是什么:

   $newPerson = array(
        'firstname'  => 'First',
        'lastname'   => 'Last',
        'email'      => 'test@example.com',
    );

我认为这里firstname 是数组的索引,First 是该索引处的值。如何在 java 中定义这样的数组?

【问题讨论】:

标签: java php


【解决方案1】:

我怀疑你最接近的是地图:

Map<String, String> map = new HashMap<String, String>();
map.put("firstname", "First");
map.put("lastname", "Last");
map.put("email", "test@example.com");

编辑:如果您想保留插入顺序(即您需要知道 firstname 是在 lastname 之前添加的),那么您可能想改用 LinkedHashMap

【讨论】:

  • 可能是 LinkedHashMap 更接近?
  • @Narendra:可能。这取决于订单是否保留在 PHP 中 - 我不知道。将编辑。
  • 是的,php.net/manual/en/language.types.array.php 说数组是有序映射。
  • @Narendra:好的,谢谢。将其保留为“如果你愿意”,因为 OP 可能对此不感兴趣。
【解决方案2】:

newPerson 将是一个 java 哈希映射 (java.util.HashMap&lt;String,String&gt;),您可以使用 put 显式插入

【讨论】:

    【解决方案3】:
    Map<String, String> newPerson = new HashMap<String, String>();
    newPerson.put("firstname", "First");
    newPerson.put("lastname", "Last");
    newPerson.put("email", "test@example.com");
    

    【讨论】:

      【解决方案4】:
      Map<String, String> newPerson = new HashMap<String, String>()
      {{
          put("firstname", "First");
          put("lastname", "Last");
          put("email", "test@example.com");
      }};
      

      【讨论】:

        【解决方案5】:

        您还应该使用SortedMap 以排序顺序存储用户定义索引名称的值
        这是执行此操作的示例代码
        定义一个SortedMap

        SortedMap&lt;String, String&gt;newPerson = new TreeMap&lt;String, String&gt;();

        将值放入使用的短路映射中:
        newPerson.put("firstname", "First");

        并获取此值:
        newPerson.get(""firstname");

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-07-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-18
          相关资源
          最近更新 更多