通过Client类将user数组排序,实现低耦合
Client类
import java.util.Arrays;
public class Client {
public static void main(String[] args) {
User user1 = new User("小王",12,153.4);
User user2 = new User("小李",14,163.4);
User user3 = new User("小张",13,123.4);
User user4 = new User("小杨",4,6.4);
User[] users = {user1,user2,user3,user4};
UserSorter userSorter = new UserSorter();
userSorter.sort(users,new CpmpareAge());
System.out.println(Arrays.toString(users));
}
}
User类
public class User {
private String username;
private Integer age;
private Double height;
public User() {
}
public User(String username, Integer age, Double height) {
this.username = username;
this.age = age;
this.height = height;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Double getHeight() {
return height;
}
public void setHeight(Double height) {
this.height = height;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", age=" + age +
", height=" + height +
'}';
}
}
Comparator接口
public interface Comparator {
Integer compare(User user,User user1);
}
CpmpareAge类
public class CpmpareAge implements Comparator {
@Override
public Integer compare(User user, User user1) {
return (int)(user.getAge() - user1.getAge());
}
}
UserSorter类
public class UserSorter {
public void sort(User user[],Comparator comparator){
for (int i = 0; i < user.length ; i++) {
for (int j = 0; j < user.length - i - 1; j++) {
if(comparator.compare(user[j],user[j + 1]) > 0){
User temp = user[j];
user[j] = user[j + 1];
user[j + 1] = temp;
}
}
}
}
}