chief
chief

Reputation: 740

Set values in arrayList with loop

 ArrayList<Rectangle> list = new ArrayList<Rectangle>();
  for (int i=0; i < 10; i++)
  {
  list.add(new Rectangle(10,20));

  }

 for (int i=0; i < list.size(); i++ )
  {
     Rectangle rec = list.get(i);
     System.out.print("Element " + i +"  ");
     System.out.println("x=" + rec.getX()+"   y=" + rec.getY());
  }

This output gives me:

  Element 0  x=0.0   y=0.0
  Element 1  x=0.0   y=0.0
  Element 2  x=0.0   y=0.0
  Element 3  x=0.0   y=0.0
  Element 4  x=0.0   y=0.0
  Element 5  x=0.0   y=0.0
  Element 6  x=0.0   y=0.0
  Element 7  x=0.0   y=0.0
  Element 8  x=0.0   y=0.0
  Element 9  x=0.0   y=0.0

I would like to make 10 elements with values 0f 10 and 20 each.

Upvotes: 1

Views: 3091

Answers (2)

takteek
takteek

Reputation: 7110

The Rectangle constructor that you're using takes a width and a height. You're not setting the x and y values.

Upvotes: 2

MByD
MByD

Reputation: 137322

The constructor that gets two arguments is this:

Rectangle(int width, int height) 

Which doesn't set x and y.

You can either use this constructor:

Rectangle(int x, int y, int width, int height) 

E.g.

list.add(new Rectangle(10,20,0,0));

Or set x and y after creating the object:

for (int i=0; i < 10; i++)
{
    Rectangle rect = new Rectangle();
    rect.setLocation(10, 20);
    list.add(rect);
}

Upvotes: 5

Related Questions