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

标签 java collections associative-array

为了开发网络服务,我必须制作如下多级关联数组

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
        )

)

with referencing这个问题,我正在使用 ArrayList

如下

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

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

public class Foo{
    public String name, fname;

    public Foo(String name,String fname){
        this.name=name;
        this.fname=fname;
    }
}

然后……

List<Foo> foos = new ArrayList<Foo>();
foos.add(new Foo("demo","fdemo");
foos.add(new Foo("test","fname");

这样您就可以访问它们...

foos.get(0).name;
=> "demo"

这让我对单关很满意。如果我继续这样做,这看起来像是一个复杂的过程。

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

过去 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);

仍然不知道如何为 tags_info

有没有关于这个东西的图书馆......?

最佳答案

Java 确实有一种关联数组。它们被称为 map (参见 java.util.Map 的实现)。使用 map ,您可以将值关联到键,例如

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

因此,为了解决您的问题,您可以创建由数组、列表(请参阅 java.util.List)和映射组合而成的复杂数据结构。

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

关于java - java中的多级关联数组,如php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9803317/

相关文章:

java - Alpine Linux - 未找到 javac

PHP/PDO 使用关联数组在记录集中导航。

javascript - 检查 JavaScript 中是否存在关联数组

java - 具有多个键的映射

php - 关联数组错误

java - 提交后如何取消所有复选框?

java - 选中复选框值并将数组元素打印为字符串而不是哈希码

java - Spring 安全 : mapping of exceptions thrown inside security filter

java - 如何在多线程代码中避免ConcurrentModificationException

c# - 通用列表中的属性名称相同但返回类型不同