我环顾四周,但我的研究没有回答如何实际做到这一点或为什么我的工作不起作用。
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 Event fromAlpha()
{
tempEvents.clear();
tempEvents = Collections.sort(events, new Comparator<String>());
return null;
}
答案 0 :(得分:0)
我假设您使用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
进行了排序,而不是Strings
。此外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 }
答案 1 :(得分:-1)
using System.Linq;
...
var sorted = from event in events orderby event.Name descending select event;