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