【问题标题】:Java equivalence for PHP array structure [duplicate]PHP数组结构的Java等价物[重复]
【发布时间】:2012-08-10 17:08:57
【问题描述】:

可能重复:
Java associative-array

我在 PHP 中有一个数组,我需要一种方法来在 Java 中描述相同类型的数组。 Java的等价物是什么?

<?php
$data = array(
    "Artist 1" => array(
        "Album 1" => array(
            array("id", "title", "genre", "length", "year"),
            array("id", "title", "genre", "length", "year"),
            array("id", "title", "genre", "length", "year")
        ),
        "Album 2" => array(
            array("id", "title", "genre", "length", "year"),
            array("id", "title", "genre", "length", "year"),
            array("id", "title", "genre", "length", "year")
        )
    ),
    "Artist 2" => array(
        "Album 1" => array(
            array("id", "title", "genre", "length", "year"),
            array("id", "title", "genre", "length", "year")
        )
    )
);
?>

【问题讨论】:

  • 你试过什么? - 零索引数组有什么问题,为什么要将键设置为数字 strings
  • 其实没什么,因为我一点头绪都没有。
  • 阅读本网站的FAQ部分,然后:一个问题必须表明你已经完成了你的功课:IE研究,阅读手册,尝试编译一些代码并展示你的尝试,无论多么笨重他们是……这给了我们一个开始的地方。如果您没有任何线索,我会先在 google 上搜索一些关于数组/结构/枚举主题的基本 Java tuts
  • @EliasVanOotegem 看来您编辑了您的帖子。好吧,这些值不是将来的值。该数组即将包含有关歌曲的数据。如果我告诉你我已经尝试过类似 1+1=11 的方法但没有奏效,我不确定你认为你会获得什么好处。

标签: java php data-structures


【解决方案1】:

我将使用更新后的示例

List<Record> records = ...
records.add(new Record("Artist 1", "Album 1", "id", "title", "genre", "length", "year"));
// etc

之后我会创建所需的索引,甚至使用 MySQL 之类的数据库或从普通 CSV 加载数据

Artist 1,Album 1,id,title,genre,length,year
Artist 1,Album 1,id,title,genre,length,year
Artist 1,Album 2,id,title,genre,length,year
Artist 1,Album 2,id,title,genre,length,year
Artist 2,Album 1,id,title,genre,length,year

除非有充分的理由嵌套数据,否则我会使用复合键

Map<String, List<String>> map = new LinkedHashMap<>();
map.put("1,1", Arrays.asList("abcdefgh", "abcdefgh", "abcdefgh"));
map.put("1,2", Arrays.asList("abcdefgh", "abcdefgh", "abcdefgh"));
map.put("2,1", Arrays.asList("abcdefgh", "abcdefgh"));

Java 作为一种面向对象的语言,最好尽可能使用对象来存储数据结构。

【讨论】:

  • 我猜这是弗洛伊德的失误。 :) “没用”
  • @MikkoP 只要你愿意学习,我都愿意提供帮助。我对那些寻求帮助但不愿意倾听的人感到沮丧。 :)
  • @PeterLawrey 我当然愿意学习。我已经用 PHP 完成了这个项目,但我想学习更多的 Java,这就是我再次这样做的原因。我对那些不知道答案的人感到沮丧,但他们必须写一些东西才能竖起大拇指。继续努力,彼得!
猜你喜欢
  • 2012-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-15
  • 2019-03-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多