Я предполагаю, что вы используете Java.
Также я предполагаю, что Event
ваш собственный класс, который имеет getName
и getNum
методы, как этот
class Event {
private final String name;
private final int num;
public Event(String name, int num) {
this.name = name;
this.num = num;
}
public String getName() {
return name;
}
public int getNum() {
return num;
}
}
Таким образом, вы можете отсортировать List
с анонимным Comparator<Event>
класса. Вы не можете сортировать его с помощью new Comparator<String>
, потому что вы сортируете Event
s, а не Strings
s. Также Collections.sort
метод ничего не возвращает, поэтому я отсортировал коллекцию events
. Так вот рабочий пример:
class Events {
private LinkedList<Event> events = new LinkedList<Event>();
private LinkedList<Event> tempEvents = new LinkedList<Event>();
public Events() {
setup();
}
private void setup() {
events.add(new Event("Breakfast", 10));
events.add(new Event("Lunch", 15));
events.add(new Event("Nibbles", 20));
events.add(new Event("Tea", 25));
events.add(new Event("Dinner", 30));
events.add(new Event("Snack", 35));
events.add(new Event("Afters", 40));
}
public void fromAlpha() {
for(Event e : events) {
System.out.print("{ " + e.getName() + ", " + e.getNum() + " }");
}
System.out.println();
Collections.sort(events, new Comparator<Event>() {
public int compare(Event e1, Event e2) {
return e1.getName().compareTo(e2.getName());
}
});
for(Event e : events) {
System.out.print("{ " + e.getName() + ", " + e.getNum() + " }");
}
System.out.println();
}
}
Вот результат:
{ Breakfast, 10 }{ Lunch, 15 }{ Nibbles, 20 }{ Tea, 25 }{ Dinner, 30 }{ Snack, 35 }{ Afters, 40 }
{ Afters, 40 }{ Breakfast, 10 }{ Dinner, 30 }{ Lunch, 15 }{ Nibbles, 20 }{ Snack, 35 }{ Tea, 25 }
Вы должны обеспечить '' компаратор для сортировки '' List . –
Thilo
это C# или Java ?? –