1

我知道这是一个菜鸟问题,但我在网上找不到任何东西。我有这个 HashMap:

HashMap<String, String> map = new HashMap<String, String>();
        Element e = (Element) children.item(i);
        map.put("title", ParseXMLmethods.getValue(e, "title"));
        map.put("pubDate", ParseXMLmethods.getValue(e, "pubDate"));
        map.put("link", ParseXMLmethods.getValue(e, "link"));
        map.put("description",ParseXMLmethods.getValue(e, "description"));
        localist.add(map);

我在 localist 上收到错误消息:“localist 无法解决”。我知道我必须声明 localist 但我不知道要使用哪种变量类型。任何帮助将非常感激。

4

3 回答 3

1

首先,将您的 Map 变量声明为接口 Map 并将它们初始化为实现,例如

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

您还可以使用菱形运算符 <> 来推断模板类型,例如

HashMap<String, String> map = new HashMap<>();

虽然以上不是必需的,但它们是良好的做法。现在,要声明您的 localist,您可以执行以下操作:

List<Map<String, String>> localist = new ArrayList<>();

这是将字符串映射到字符串的映射列表。

于 2013-09-26T21:39:30.490 回答
0

如果您尝试将地图添加到列表中,那么您将使用List<Map>实现,通过ArrayListLinkedList主要。但是,为什么要保留地图列表将超出我的范围,如果您要存储多个地图,我会为此推荐一个类。

于 2013-09-26T21:36:03.250 回答
0

根据您希望使用的类型的具体程度,您可以使用ArrayList<HashMap<String, String>> localist = new ArrayList<HashMap<String, String>>();

正如另一个答案所述,我会先花一些时间在您的系统中计划您的课程。通常,如果您在网上找不到答案,则可能表明您的方法在编写可扩展和模块化代码时不是最佳实践或设计。

您应该始终考虑使用抽象或接口类型而不是具体实现作为开始:

AbstractList<Map<String,String>>
于 2013-09-26T21:36:39.153 回答