0

我有一个原生的 Android 新闻应用程序,每篇文章下都有新闻文章和评论。

当我打开任何特定文章的内部视图(活动)时,同一篇文章可能会有不同的报道,例如来自 CNN、BBC、FOX 等的报道。

每个报道实际上都被视为具有唯一字符串 ID/哈希的不同文章。

我的背景是 Perl/PHP 我想知道如何在 java 中创建这样的东西:

$array["Article1_Coverage_X"] = array($Comment1,$Comment2,$Comment3);
$array["Article1_Coverage_Y"] = array($Comment1,$Comment2,$Comment3,$Comment4);
// $Comment1 , $Comment2 ....etc are comment objects

. . 即数组的第一维是字符串(键),第二维是其他类型

我尝试了以下方法,但这不是我想要的:

 ArrayList<ArrayList<Comment>>  // Where Comment is a Java object with ID,Title.....etc

因为两个维度的键都是索引整数

如果有更好的方法,我将不胜感激。我想将与每篇新闻文章相关的评论列表存储在一个临时变量中,这样一旦用户退出活动,它就会(回收/扔到垃圾中),这就是我不想存储在 SQLite 数据库中的原因。

4

1 回答 1

1

您需要的是 ArrayLists 的 HashMap。HashMap 创建键值对。将您的密钥设为字符串,以便您可以使用它而不是整数进行提取。

HashMap < String,ArrayList < Comment >> hmap = new HashMap < String,ArrayList < Comment >> ();

输入数据,

hmap.put("BBC", commentlist1);

提取,

ArrayList<Comment> list = hmap.get("CNN");

要迭代元素,有几种方法。 如何有效地迭代地图中的每个条目?

此外,如果您希望维护特定订单,您可能需要使用LinkedHashMap

于 2013-04-21T11:31:36.270 回答