Java – how to perform a series of sorting operations (multiple sorting conditions) on ArrayList

I have an ArrayList of objects on which I want to run a series of sorting operations I want to sort them by name first, and if they are the same, by ID, for example

How can I achieve it?

This is my code

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;



    }
}

This code sorts the list by ID, but I want to sort the names again

Solution

Collections.sort(myList,new Comparator() {
Collections.sort(myList,new Comparator() {

     @Override
     public int compare(Object o1,Object o2)
     {
        // write your ordering code here
        return 0;
     }

  });

Just fill in the comparison code you want, and Java will handle sorting for you

Edit updated questions:

Comparator<Ticket> mc;
mc = new TicketIdComparator();
Collections.sort(tickets,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;
        else if (num1>num2)
            return -1;
        else
            return ticket1.getName().compare(ticket2.getName());
    }
}
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>