我环顾四周,但我的研究都没有回答如何实际执行操作或为什么我的系统无法正常工作。
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;
}
我假设您使用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 }
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句