java - 在循环中将 TreeMap 添加到 ArrayList

标签 java arraylist collections treemap

我想将树状图添加到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。

关于java - 在循环中将 TreeMap 添加到 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38805418/

相关文章:

java - Java矩阵数学库的性能?

java - 在 JComponent 中存储形状

C# 替换转义的转义

Java T 初始化

c# - 简化在 Java 中编写自定义迭代器

java - 无法使用 getResources() 方法访问资源

java - 在闪屏期间动态选择 Activity

java - 将字符串文字拆分成多行

c# - #c (ArrayList) 中的集合在 for 循环或带有索引的 foreach 中

java - 使用自定义比较器将对象添加到二进制搜索树?