如何在Java中声明多维数组或结构

时间:2012-12-23 16:37:56

标签: java arrays

我在PHP中有这个结构,我不确定如何将它转换为Java,我需要提到所有键和值都是字符串。

对于奖励积分,请举例

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

5 个答案:

答案 0 :(得分:1)

  

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

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

答案 1 :(得分: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就可以了。

答案 2 :(得分: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);

等等......

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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

等...