2013-11-03 127 views
0

我想将对象添加到我的数组列表中,然后可以实现引用对象元素的几个方法。我有两个类气球和MyPark(都实现其他接口,但这是不相关的)。在气球类有:使用对象元素将对象添加到数组列表

public class Balloons implements Balloon { 

private int area; 
private int position; 

public void Balloon(int area, int position) { 
    this.area = area; 
    this.position = position; 
} 

@Override 
public int getArea() { 
    return area; 
} 
} 

而在MyPark我创建了我的气球的ArrayList:

import java.util.*; 
public class MyPark implements Park { 

public Balloons balloon = new Balloons; 
public ArrayList <Balloon> a = new ArrayList <Balloon>(); 
public int index; 

@Override 
public void addBalloon (int barea){ 
    a.add(new Balloons (barea, index)); 
} 
} 

但显然这是不这样做的方式。有什么建议么?我也希望能够最终按区域对列表进行排序......

+4

'公共类气球气球实现{公共无效气球(...':你是在混淆竞赛或从事什么不?使用相同的名字,并尊重Java的命名约定 –

+0

注意到,我之前被我的教授告诉过这个问题,一个讨厌的习惯有点遗憾 – user2950071

回答

3

public void Balloon(int area, int position)不是构造函数,它是一种方法 - 大概您希望它成为构造函数。

要使它成为构造函数,它应该与您的类具有相同的名称(Balloons,而不是Balloon),您应该删除void

public Balloons(int area, int position) 

对列表进行排序,你基本上有两种选择:

+0

这解决了我在向该数组中添加对象时遇到的问题。然后,我将如何从数组中的指定位置检索气球的区域? – user2950071

+0

@ user2950071'a.get(someInde x)的.getArea()'。 – Dukeling

+0

你们真棒!谢谢 – user2950071

2

你可以比较器来排序列表

Collections.sort(SortList, new Comparator<Balloon>(){ 
      public int compare(Balloon b1, Balloon b2) { 
       return b1.area- b2.area; 
      } 
     });