在构造函数中初始化ArrayList

时间:2014-01-31 07:55:52

标签: java arraylist constructor

作为赋值的一部分,我应该创建一堆矩形并将每个对象放在ArrayList中,这将在构造函数中初始化。我想我自己很困惑。 Eclipse告诉我,我不能将.add(new_rec)与此对象一起使用,因为它的类型为(DoubleDouble)。我假设因为ArrayList只是<Double>,这导致了一些问题。除此之外,我认为我在其他地方被误导了,但我不确定在哪里。

public class WhyWontThisWork {

        WhyWontThisWork(Double name, Double rec_name){
            Rectangle new_rec = new Rectangle(23.1,43.0);
            ArrayList<Double> name = new ArrayList<Double>();
            for(int i = 0; i < 10; i++){
                name.add(new_rec);
            }
        }
}

...而Rectangle类看起来像......

public class Rectangle {
    private double length;
    private double width;

    public Rectangle(double length, double width){
        this.length = length;
        this.width = width;
    }

6 个答案:

答案 0 :(得分:2)

使用的ArrayList需要

ArrayList<Rectangle> name = new ArrayList<Rectangle>();

当你使用arrayList来保存矩形而不是双打时。

答案 1 :(得分:2)

这非常简单 - 名称所需的类型应为:

ArrayList<Rectangle> name = new ArrayList<Rectangle>();

&lt;&gt;内的泛型类型表示您要添加到ArrayList的内容。如果您需要存储一个double数组,如果它们是字符串,则可以ArrayList<Double>使用ArrayList<String>

在您的情况下,您需要存储一个矩形列表,因此ArrayList<Rectangle>是您的解决方案。

答案 2 :(得分:0)

您的arraylist必须是Rectangle类型才能执行此操作。

ArrayList<Rectangle> name = new ArrayList<Rectangle>()

答案 3 :(得分:0)

Eclipse是对的。

ArrayList<Rectangle> name = new ArrayList<Rectangle>();
name.add(new_rec);

答案 4 :(得分:0)

参数和ArrayList name也是一样的,如下所示进行更改:

   WhyWontThisWork(Double nameDouble, Double rec_name){
                Rectangle new_rec = new Rectangle(23.1,43.0);
                ArrayList<Rectangle> name = new ArrayList<Rectangle>();
                for(int i = 0; i < 10; i++){
                    name.add(new_rec);
                }
            }

答案 5 :(得分:0)

您正尝试将Rectangle对象添加到包含ArrayList个对象的Double。这就是你看到错误的原因。正如其他答案中所指出的,可能的最佳解决方案是将列表更改为ArrayList<Rectangle>

也许您应该在Java herehere中阅读一些关于泛型的内容。