首页 > 代码库 > 另一种比较器:Comparator
另一种比较器:Comparator
package comparatordemo.cn; import java.util.Comparator; /* * 一个对象的初期,并没有实现comparable 接口,此时肯定无法进项对象的排序操作,所以为了解决这个问题, * Java又定义了另一个比较器的操作接口,但是前提是:必须先定义好一个比较规则类出来 * 接口的定义如下: * public interface Comparator<T>{ * public int compare(T o1, T o2) ; * boolean equals(Object obj) ; *} */ //定义一个person类 class Person{ private String name; private int age; public Person(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } //复写equals方法 public boolean equals(Object obj){ if (this==obj) { return true; } if (!(obj instanceof Person)) { return false; } Person p = (Person)obj; if (this.age==p.age&&this.name.equals(p.name)) { return true; } else { return false; } } //重写tostring方法 public String toString(){ return this.getName()+this.getAge(); } } //定义一个比较规则 class PersonComparator implements Comparator<Person>{ public int compare(Person p1, Person p2){ if (p1.equals(p2)) { return 0; } else if (p1.getAge()<p2.getAge()) { return 1; } else { return -1; } } } public class ComparatorDemo { public static void main(String[] args) { //创建一个对象数组 Person stu[] = {new Person("张三",22),new Person("张三",20),new Person("李四",22),new Person("王五",30),new Person("赵六",40)}; //排序 java.util.Arrays.sort(stu,new PersonComparator()); //遍历数组 for (int i = 0; i < stu.length; i++) { System.out.println(stu[i]); } } }
另一种比较器:Comparator
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。