-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

あなたはあなたの解決策としてを使うことができMapます:

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

等...

于 2012-12-23T16:42:16.553 に答える
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>>ます。コレクション内の値が一意である場合は を使用しSet、それ以外の場合はを使用しListます。

于 2012-12-23T16:41:34.560 に答える