-2

我在 PHP 中有这种结构,但我不确定如何将它翻译成 Java,我需要提一下所有键和值都是字符串。

如需积分,请举例说明

private $group = array(
     "group1" = array("item1","item2"),
     "group2" = array("item3","item4"),
     ....
     "groupn" = array("itemn","itemn+1"),
     ....
);
4

5 回答 5

1

PHP 中的数组实际上是一个有序映射。映射是将值与键相关联的类型。来源

Java 使用数组的真实定义。你想要的是一个Map.

于 2012-12-23T16:42:39.930 回答
1
   Map<String, List<String>> group = new LinkedHashMap<String, List<String>>();
   group.put("group1", new ArrayList<String>(Arrays.asList("item1", "item2")));
   group.put("group2", new ArrayList<String>(Arrays.asList("item3", "item4")));

在 php 中,如果您使用 foreach 遍历元素

foreach ($group as $key => $subarray)

您可以保证第一个 $key 是“group1”,因为 php 数组是按密钥创建时间隐式排序的。如果你想在 java 中得到同样的保证,你必须使用LinkedHashMap. 否则一个普通HashMap的就可以了。

于 2012-12-23T16:54:01.077 回答
0
HashMap<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
ArrayList<String> list = new ArrayList<String>();
list.add("item1");
list.add("item2");
map.add("group1", list);

等等...

于 2012-12-23T16:41:24.973 回答
0

使用Map<String, Collection<String>>. 如果集合中的值是唯一的,则使用 a Set,否则使用 a List

于 2012-12-23T16:41:34.560 回答
0

您可以使用 aMap作为您的解决方案:

Map<String, List<String>> map = new HashMap<String, List<String>>();
map.put("group1", Arrays.asList("item1", "item2", "item3");

ETC...

于 2012-12-23T16:42:16.553 回答