Java:找不到符号

时间:2012-10-06 21:49:01

标签: java linked-list hashmap

尝试向hashmap添加linkedList条目,我收到add方法的"cannot find symbol"错误。

我有:

import java.util.*;
import java.io.*;


class hash 
{
    public static void main(String[]args)
    {
        List<HashMap<String, String>> data = 
        new LinkedList<HashMap<String, String>>();

        Map<String, String> map = new HashMap<String, String>();
        map.put("name", "demo");
        map.put("fname", "fdemo");

        data.add(0, map);

        String test = map.get("fname");
        String datatest = data.get(0).get("name");

        System.out.println(datatest);

    }

}

怎么了?

3 个答案:

答案 0 :(得分:4)

List<HashMap<String, String>> data = 
        new LinkedList<HashMap<String, String>>();

以上代码应为: -

List<Map<String, String>> data = 
        new LinkedList<Map<String, String>>();

答案 1 :(得分:3)

将其更改为使用Map,而不是HashMap

List<HashMap<String, String>> data =
new LinkedList<HashMap<String, String>>();

答案 2 :(得分:1)

因为您将map宣称为Map而不是HashMap,您还必须将data声明为:

List<Map<String, String>> data = new LinkedList<Map<String, String>>();

如果您更改map

,您可以坚持列表声明
List<HashMap<String, String>> data = new LinkedList<HashMap<String, String>>();
HashMap<String, String> map = new HashMap<String, String>();

但更好的方法是,尽可能只使用接口而不是声明中的特定实现。