java中的多级关联数组,如php

KuK*_*uKu 3 java collections associative-array

对于Web服务的开发,我必须按如下方式制作多级关联数组

Array
(
    [0] => Array
        (
            [id] => 1100
            [content] => This is content
            [creator_info] => Array
                (
                    [id] => 1
                    [fname] => abc
                    [lname] => xyz
                )

            [tag_info] => Array
                (
                    [0] => Array
                        (
                            [id] => 3
                            [name] => my
                        )

                    [1] => Array
                        (
                            [id] => 4
                            [name] => you
                        )

                    [2] => Array
                        (
                            [id] => 5
                            [name] => your
                        )

                )

            [created_date] => 14 JAN 2012
        )

    [1] => Array
        (
            [id] => 1101
            [content] => This is content1
            [creator_info] => Array
                (
                    [id] => 2
                    [fname] => abc1
                    [lname] => xyz1
                )

            [tag_info] => Array
                (
                    [0] => Array
                        (
                            [id] => 35
                            [name] => wer
                        )

                    [1] => Array
                        (
                            [id] => 47
                            [name] => cvb
                        )

                    [2] => Array
                        (
                            [id] => 51
                            [name] => mnv
                        )

                )

            [created_date] => 15 JAN 2012
        )

)
Run Code Online (Sandbox Code Playgroud)

参考这个问题,我正在使用ArrayList.

如下

Java没有像PHP那样的关联数组.

您正在做的事情有各种解决方案,但这取决于您希望如何查找信息.您可以轻松编写一个包含所有信息的类,并将它们的实例存储到ArrayList中.

public class Foo{
    public String name, fname;

    public Foo(String name,String fname){
        this.name=name;
        this.fname=fname;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后...

List<Foo> foos = new ArrayList<Foo>();
foos.add(new Foo("demo","fdemo");
foos.add(new Foo("test","fname");
Run Code Online (Sandbox Code Playgroud)

所以你可以像...一样访问它们

foos.get(0).name;
=> "demo"
Run Code Online (Sandbox Code Playgroud)

这让我对单级感到高兴.如果我继续使用它,这看起来像一个复杂的过程.

我想要一些高速的简单程序.

最近3天我在工作,我获得了成功跟随

Map<String,Object> myMap1 = new HashMap<String, Object>();
List<Map<String , Object>> myMap  = new ArrayList<Map<String,Object>>();
Map<String,String> user_info = new HashMap<String, String>();
user_info.put("fname", "xyz");
user_info.put("lname", "pqr");
myMap1.put("id", 20);
myMap1.put("content", "This is content");
myMap1.put("creator_info", user_info);
myMap1.put("timestamp", "11 Jan 2012");
myMap.add(0,myMap1);
Run Code Online (Sandbox Code Playgroud)

仍然没有得到如何做到这一点 tags_info

这个东西有没有图书馆....?

Ale*_*exR 5

Java确实有一些关联数组.它们被称为Maps(请参阅java.util.Map的实现).使用map,您可以将值与键相关联,例如

Map<String, String> mymap = new HashMap<String, String>();
mymap.put("one", "1");
mymap.put("two", "2"); 
// etc.
Run Code Online (Sandbox Code Playgroud)

因此,要解决您的问题,您可以创建复杂的数据结构,它是数组,列表(请参阅java.util.List)和映射的组合.

但是您的结构看起来太复杂,并且不易管理.所以,你的建议很好.创建像Foo这样的类,可能会创建另一个包含多个Foo实例等的类.