基于String属性将对象添加到数组?

时间:2015-04-06 00:32:47

标签: java arrays string arraylist

我为一个为期一年的学校项目编写了一个应用程序,其目的是为青少年展示阅读文章,让他们了解当前事件。

我想制作几个不同的ArrayList类别来存储文章。对象是Article(String URL, String Category, String title)

我想知道是否,而不是这样做:

Article p = new Article(
    "http://www.google.com", "economics", "Potato Article");
if(category.equals("elections"))
    elections.add(p);
if(category.equals("economics"))
    economics.add(p);
// etc.

如果有一件事我可以这样做:

String name = category;
(something).something(name);
name.add(p);

所以基本上我想将文章添加到与其类别同名的ArrayList,假设已经创建了ArrayList,并且特定文章的类别与所需的{{1}相匹配}}

1 个答案:

答案 0 :(得分:3)

数据结构应为Map<String, List<Article>>,因此示例代码如下:

Map<String, List<Article>> map =
    new HashMap<String, List<Article>>();

map.put("elections", new ArrayList<Article>());
map.put("economics", new ArrayList<Article>());

Article article1 = new Article(
    "http://www.google.com", "economics", "Potato");
Article article2 = new Article(
    "http://www.yyy.com", "elections", "xxx");

map.get(article1.getCategory()).add(article1);
map.get(article2.getCategory()).add(article2);