在循环中将TreeMaps添加到ArrayList

时间:2016-08-06 14:38:40

标签: java arraylist collections treemap

我想将树图添加到java中的arraylist中。这就是我正在做的事情:

ArrayList al=new ArrayList();
    for(int i=0;i<n;i++)
    {
        al.add(new TreeMap());
    }

当我尝试将键值对添加到树形图时:

for(int i=0;i<n;i++)
    {
        for(int j=i+1;j<n;j++)
        {
            al.get(i).put(j,(arr[j]-arr[i]));
        }
    }

编译器在此提出错误: error description

有人可以帮帮我.... 感谢。

这个问题与What is a raw type and why shouldn't we use it?不同,因为我不是要求对原始类型或泛型的解释,但我要求解决错误。

1 个答案:

答案 0 :(得分:1)

您需要使用Generics。

ArrayList<TreeMap> al=new ArrayList<TreeMap>();
for(int i=0;i<n;i++)
{
    al.add(new TreeMap());
}

或者你必须做铸造。泛型是更好的选择。

说明: 如果使用ArrayList al=new ArrayList();表示对象的数组列表。但是当您尝试将键值对添加到地图时,首先会获得您的案例中的对象,这是对象类型。要将其用作树图,您需要将其强制转换为TreeMap。

如果您使用ArrayList<TreeMap> al=new ArrayList<TreeMap>();,那么在获取数组条目时,您将直接获取TreeMap。