详解JAVA使用Comparator接口实现自定义排序
程序员文章站
2024-02-12 19:43:22
1、原则
comparator接口可以实现自定义排序,实现comparator接口时,要重写compare方法:
int compare(object o1, obj...
1、原则
comparator接口可以实现自定义排序,实现comparator接口时,要重写compare方法:
int compare(object o1, object o2) 返回一个基本类型的整型
如果要按照升序排序,则o1 小于o2,返回-1(负数),相等返回0,01大于02返回1(正数)
如果要按照降序排序,则o1 小于o2,返回1(正数),相等返回0,01大于02返回-1(负数)
import java.util.arraylist; import java.util.comparator; import java.util.list; public class usercomparator implements comparator < user > { public static void main( string[] args ) { list < user > users = new arraylist < user >(); users.add( new user( 10, "a" ) ); users.add( new user( 11, "d" ) ); users.add( new user( 15, "s" ) ); users.add( new user( 6, "x" ) ); users.add( new user( 17, "a" ) ); users.add( new user( 17, "b" ) ); users.add( new user( 17, "c" ) ); users.add( new user( 17, "d" ) ); usercomparator comparator = new usercomparator(); users.sort( comparator ); // 也可以使用:collections.sort( users, comparator ); for ( user u : users ) { system.out.println( u ); } } @override public int compare( user u1, user u2 ) { if ( u1.equals( u2 ) ) { return 0; } else if ( u1.getage() < u2.getage() ) { return 1; } else if ( u1.getage() == u2.getage() ) { int f = u1.getname().compareto( u2.getname() ); if ( f < 0 ) { return -1; } return 0; } else { return -1; } } } class user { private int age; private string name; public user() { } public user( int age, string name ) { this.age = age; this.name = name; } public int getage() { return age; } public void setage( int age ) { this.age = age; } public string getname() { return name; } public void setname( string name ) { this.name = name; } @override public string tostring() { return "user [age=" + age + ", name=" + name + "]"; } }
user [age=17, name=a] user [age=17, name=b] user [age=17, name=c] user [age=17, name=d] user [age=15, name=s] user [age=11, name=d] user [age=10, name=a] user [age=6, name=x]
以上所述是小编给大家介绍的java使用comparator接口实现自定义排序详解整合,希望对大家有所帮助
推荐阅读
-
详解JAVA使用Comparator接口实现自定义排序
-
【JAVA】用Comparable接口学生的成绩做降序排序!请正确指定泛型;用Comparator实现按照姓名排序,请正确指定泛型!
-
java比较器 --- 使用Comparator实现定制排序
-
JAVA:使用阿里云短信接口实现短信验证码的发送(详解)
-
java-如何在不使用比较器和比较器接口的情况下对地图进行排序?如何编写自定义排序?
-
JAVA 使用Comparator接口实现自定义排序
-
java 使用Comparable接口实现自定义比较
-
JAVA中Arrays.sort()使用Comparable或Comparator接口对数组排序(转)
-
【JAVA】用Comparable接口学生的成绩做降序排序!请正确指定泛型;用Comparator实现按照姓名排序,请正确指定泛型!
-
Java中Comparable接口以及自定义排序的实现示例