我有一个对象的arrayList,我想在这个列表上运行一系列的排序操作.我想首先按名称对它们进行排序,如果两个名称相同,则按id排序,例如.
我该如何实现它?
这是我的代码
Comparator<Ticket> mc;
mc = new TicketIdComparator();
Collections.sort(tickets, mc);
final class TicketIdComparator implements Comparator<Ticket>
{
@Override
public int compare(Ticket ticket1, Ticket ticket2) {
String TicketId1 = ((Ticket) ticket1).getNumber();
String TickedId2 = ((Ticket) ticket2).getNumber();
int num1=Integer.parseInt(TicketId1);
int num2 =Integer.parseInt(TickedId2);
if (num1<num2)
return 1;
if (num1>num2)
return -1;
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
这个代码排序列表id,但我想再次排序name
我有一个 ArrayList,我想对内容进行排序,以便首先对任何带有英文字母的内容进行排序,然后对带有数字和非英文字符的任何内容进行排序。
例如: A, B , C ... Z, 1 , 2, 3 ... 9, _test1,_2, ...
目前我只知道如何按字母顺序对项目进行排序。建议?
class Comparator implements Comparator<Name> {
@Override
public int compare(Name name1, Name name2) {
return name1.getName().toLowerCase().compareTo(name2.getName().toLowerCase());
}
}
Run Code Online (Sandbox Code Playgroud)