本文主要是介绍java运用Comparator为对象排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
要排序的类需要实现Comparator接口,重写compare方法:
user类及实现接口的内部类:
package test;import java.util.Comparator;public class User {private String userName;private int age;public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User [userName=" + userName + ", age=" + age + "]";}}
test:
package test;import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;import org.junit.Test;public class TestSort {@Testpublic void main() {// TODO Auto-generated method stubUser user1 = new User();user1.setUserName("ddd");user1.setAge(20);User user2 = new User();user2.setUserName("aaa");user2.setAge(30);User user3 = new User();user3.setUserName("ccc");user3.setAge(15);User user4 = new User();user4.setUserName("bbb");user4.setAge(20);List<User> users = new ArrayList<User>();users.add(user1);users.add(user2);users.add(user3);users.add(user4);Collections.sort(users, new MyComparator());for (User user : users) {System.out.println(user);}}class MyComparator implements Comparator {public int compare(Object obj1, Object obj2) {User u1 = (User) obj1;User u2 = (User) obj2;if (u1.getAge() > u2.getAge()) {return 1;} else if (u1.getAge() < u2.getAge()) {return -1;} else {// 利用String自身的排序方法。// 如果年龄相同就按名字进行排序return -u1.getUserName().compareTo(u2.getUserName());}}}
}
这篇关于java运用Comparator为对象排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!