Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Сортировка List по одному полю


Автор: imissyouso 17.9.2010, 11:16
Доброго времени суток!
При работе над курсовиком возник вопрос о сортировке. 

Есть класс (структура игральной карты)

Код

public class Card {
public int weight; // значимость карты
public int colour; // масть карты (1 - например черви, 2 - крести, 3 - буби, 0 - пики)

public Card(int weight, int colour) {
this.weight = weight;
this.colour = colour;
}


Создаю список 

Код

List<Card> pack = new ArrayList<Card>();


далее наполняю этот список картами, например так:

Код:
Код

pack.add(new Card(6,1));
pack.add(new Card(10,3));
pack.add(new Card(8,1));
pack.add(new Card(9,2));
pack.add(new Card(7,0));


Как отсортировать данный список по возрастанию значимости и масти (по заданному полю класса)? 

В C# читал что нужно создавать компоратор для метода Sort() , но толком не понял....

Или например если у меня определён козырь буби, то нужно отсортировать , чтобы буби были в начале списка , а потом всё остальное.

Спасибо! 
    
         

Автор: AntonSaburov 17.9.2010, 13:31
В Java тоже надо написать компаратор 
http://www.javadeveloper.co.in/java-example/java-comparator-example.html

или сделать сам Card реализующим интерфейс Comparable
http://onjava.com/pub/a/onjava/2003/03/12/java_comp.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)