我想将树图添加到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?不同,因为我不是要求对原始类型或泛型的解释,但我要求解决错误。
答案 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。