Java linear table sort sample sharing

  • 2020-04-01 03:00:57
  • OfStack

You can look at this static method public static < T> Void sort (List< T> The list, Comparator< ? Super T> C)

1. Define a model:


package model;

public class User
{
    private String userName;
    private int userAge;

    public User()
    {
    }

    public User(String userName, int userAge)
    {
        this.userName = userName;
        this.userAge = userAge;
    }
    public String getUserName()
    {
        return userName;
    }
    public void setUserName(String userName)
    {
        this.userName = userName;
    }
    public int getUserAge()
    {
        return userAge;
    }
    public void setUserAge(int userAge)
    {
        this.userAge = userAge;
    }
}

2. Then define a comparator, implement the java.util.Comparator interface, and write the comparison rules in the compare() method:


package util;
import java.util.Comparator;
import model.User;

public class ComparatorUser implements Comparator<User>
{
    @Override
    public int compare(User arg0, User arg1)
    {
        //Compare the names
        int flag = arg0.getUserName().compareTo(arg1.getUserName());
        //If the name is the same, compare the age
        if (flag == 0)
        {
            return arg0.getUserAge() - arg1.getUserAge();
        }
        return flag;
    }
}

Sort (List List, Comparator c) method in java.util.Collections:


package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import util.ComparatorUser;
import model.User;

public class TestApp
{
    public static void main(String[] arg0)
    {
        List<User> userList = new ArrayList<User>();
        //Insert data
        userList.add(new User("A", 15));
        userList.add(new User("B", 14));
        userList.add(new User("A", 14));
        //The sorting
        Collections.sort(userList, new ComparatorUser());
        //Print the result
        for (User u : userList)
        {
            System.out.println(u.getUserName() + " " + u.getUserAge());
        }
    }
}

4. Operation results:


A 14
A 15
B 14


Related articles: