Кажется, я не могу найти способ отсортировать список по «аренде ()» и «прибыли ()». Как мне этого добиться?
Не могу найти ничего, что могло бы помочь.
Родительский класс:
public abstract class Zone
{
int area; //zonos plotas kv metrais
float price; //kaina uz kv metra
int jobPlaces; //darbo vietu skaicius
abstract float rent();
abstract float profit();
abstract float expenses();
abstract float totalProfit();
}
У меня есть 3 класса (жилые, коммерческие, промышленные), которые расширяют этот класс и переопределяют его абстрактные методы.
Я определяю списки:
static ArrayList<Zone> coll1 = new ArrayList<Zone>();
static ArrayList<Zone> coll2 = new ArrayList<Zone>();
static ArrayList<ArrayList<Zone>> superCollection = new ArrayList<ArrayList<Zone>>();
Затем я случайным образом (например, 3 жилых зоны, 5 коммерческих зон, 1 промышленная зона) заполняет coll1 и coll2 и добавляет их в суперколлекцию.
Как я могу отсортировать superCollection с помощью «rent ()», распечатать его, а затем отсортировать по «profit ()» по возрастанию или убыванию?
Edit:
Collections.sort(superCollection, new Comparator<ArrayList<Zone>>()
{
@Override
public int compare(ArrayList<Zone> arg0, ArrayList<Zone> arg1)
{
return arg0.get(0).profit().compareTo(arg1.get(0).profit());
}
});
Пробовал запустить это, но это все равно не сортируется по прибыли:
zone rent profit
Residential zone: 11578.3 5534.4
Residential zone: 1963.7 2935.1
Residential zone: 4029.5 4987.2
Residential zone: 13399.6 11453.7
Residential zone: 2763.7 7212.9
Residential zone: 3961.3 3384.8
Commercial zone: 29041.3 59291.3
Commercial zone: 10483.6 42842.5
Industrial zone: 48332.3 939667.0
Industrial zone: 31563.8 1074516.2
Residential zone: 8347.1 3587.1
Commercial zone: 26177.9 47750.9
Industrial zone: 33917.8 1005413.1
Industrial zone: 25704.2 1251655.3
Industrial zone: 30268.5 1131300.0
Industrial zone: 42225.1 588861.8
Industrial zone: 32779.2 1220447.5
Industrial zone: 19686.2 863131.5