我正在尝试将对象添加到我的arraylist中,然后我可以实现一些引用该对象元素的方法。我有两个类Balloons和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));
}
}
但显然这不是这样做的方法。有什么建议?我还希望能够按区域对列表进行排序......
答案 0 :(得分:3)
public void Balloon(int area, int position)
不是构造函数,它是一个方法 - 大概你希望它是一个构造函数。
要使其成为构造函数,它应该与您的类(Balloons
,而不是Balloon
)具有相同的名称,并且您应该删除void
。
public Balloons(int area, int position)
要对列表进行排序,您基本上有两个选项:
让您的Balloons
班级实施Comparable
并use the normal sort
。
答案 1 :(得分:2)
你可以比较你的名单
Collections.sort(SortList, new Comparator<Balloon>(){
public int compare(Balloon b1, Balloon b2) {
return b1.area- b2.area;
}
});