在循环中将 TreeMaps 添加到 ArrayList

adding TreeMaps to ArrayList in loop

我想将树图添加到 java 中的数组列表中。这是我正在做的事情:

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?不同,因为这里我不是要求解释原始类型或泛型,而是要求解决错误。

您需要使用泛型。

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。