0

私は基本的に PHP プログラマーであり、ジャワ海の海岸で不思議に思っている (またはさまよっている!) だけです。もちろん、救命ボート、スタックオーバーフローで。

Javaで多次元配列を作成するのに苦労していますが、phpのように単純に可能でした$array["bla"]["blabla"]["blablabla"]...

これが私が達成したいことです

Array
(
    [user] => UserName
    [groups] => Array
        (
            [0] => group1
            [1] => group2
            [2] => group3
        )

    [categories] => Array
        (
            [0] => category1
            [1] => category2
            [2] => category3
        )

    [notification] => user notification string
    [departments] => Array
        (
            [0] => department1
            [1] => department2
            [2] => department3
            [3] => department4
        )

    [sub-deptmnt] => Array
        (
            [department1] => Array
                (
                    [0] => subdep1
                    [1] => subdep2
                )

            [department2] => Array
                (
                    [0] => another-subdep1
                    [1] => another-subdep2
                    [2] => another-subdep3
                )

        )

)

phpではそれは

$array["user"] = "UserName";
$array["groups"] = array("group1","group2","group3");
$array["categories"] =array("category1","category2","category3");
$array["notification"] = "user notification string";
$array["departments"] = array("department1","department2","department3","department4");
$array["sub-deptmnt"] = array("department1" => array("subdep1","subdep2"),"department2"=> array("another-subdep1","another-subdep2", "another-subdep3"));

誰か私が先に進むのを手伝ってください..

編集:PHPの例を使用して目的の配列を明確にするには

4

3 に答える 3

1

このようにオブジェクトを定義します

    class SampleModel{

        String userName;
        List<String> groups  ;
        List<String> categories;
        String notification;
        List<String> departments;
        Map<String,List<String>> sub_deptmnt;

        //getter and setter 
    } 
于 2013-08-29T17:11:50.193 に答える
0

キーがどうなるか前もってわかっている場合は、Prabhakaran が示した方法で、フィールドと getter/setter メソッドを使用してクラスをセットアップするのが最善です。

ただし、キーが動的である可能性がある場合: PHP の連想配列に相当するのはMap<String,Object>.

Map<String,Object> arr = new HashMap<String,Object> ();

次に、配列要素を作成します。

arr.put ("user", userName);

そしてそれを取得するには:

String userName = (String)(arr.get ("user"));

配列要素を配列、ArrayLists、またはその他のMap<String,Object>マップに設定して、多次元配列を取得できます。ただし、Java は厳密に型指定されているため、getメソッドはオブジェクトを返すため、期待する型にキャストする必要があります。

String[] categories = (String[])(arr.get ("categories"));

また

ArrayList<String> categories = (ArrayList<String>)(arr.get ("categories"));

以前に「カテゴリ」に保存されたオブジェクトのタイプが間違っている場合、例外がスローされます。

他に何もないとしても、少なくともコレクションのチュートリアルを調べる必要があります。これは、Java を使用する場合に必ず知っておく必要があるものだからです。

[注: 上記のコードはまだテストしていません。私はそれを正しく理解したと思います。]

于 2013-08-29T17:35:33.537 に答える