步骤:
教你使用Java中的Comparator比较器
一、知识点简述:
自定义比较器:
创建Comparator的步骤:
二、案例题目及要求:
三、代码实现:
1.创建Person类
public class Person { private String IdCard; private String name; private int age; //get set方法 public String getIdCard() { return IdCard; } public void setIdCard(String idCard) { IdCard = idCard; } 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; } //有参构造器 public Person(String idCard, String name, int age) { super(); IdCard = idCard; this.name = name; this.age = age; } //重写toString方法 @Override public String toString() { return "Person [IdCard=" + IdCard + ", name=" + name + ", age=" + age + "]"+"n"; } //无参构造器 public Person() { super(); }
2.创建四个子类,分别继承Person类:
//学生类 class Student extends Person{ } //工人类 class Worker extends Person{ } //学者类 class Scholar extends Person{ } //小偷类 class Thief extends Person{ }
3.编写程序入口,分别创建以上四个类的对象,并赋值 :
//程序入口 public static void main(String[] args) { //创建Student对象 Person st = new Student(); //赋值 st.setName("火麟飞"); st.setIdCard("621760388988"); st.setAge(17); st.getName(); st.getIdCard(); st.getAge(); //创建worker对象 Person wk = new Worker(); wk.setName("天羽"); wk.setIdCard("821760388966"); wk.setAge(21); wk.getName(); wk.getIdCard(); wk.getAge(); //创建scholar对象 Person sl = new Scholar(); sl.setName("小胖墩"); sl.setIdCard("421960386866"); sl.setAge(18); wk.getName(); wk.getIdCard(); wk.getAge(); //创建Thief对象 Person tf = new Thief(); tf.setName("夜凌云"); tf.setIdCard("961860355899"); tf.setAge(35); tf.getName(); tf.getIdCard(); tf.getAge();
4.创建List集合,将四个对象存进去:
//创建一个list集合 ArrayList<Person> list = new ArrayList<Person>(); //将四个对象存入到list集合 list.add(st); list.add(wk); list.add(sl); list.add(tf); System.out.println("排序前的结果为:n"+list); System.out.println("==================================================");
5.自定义排序(根据年龄):
//根据年龄排序 //创建比较器比较的对象 ByAge ba = new ByAge(); Collections.sort(list, ba); System.out.println("根据年龄排序后的结果为:n"+list); System.out.println("==================================================");
5.1 根据年龄排序的方法:
//根据年龄排序 class ByAge implements Comparator<Person>{ @Override public int compare(Person o1, Person o2) { return o1.getAge()-o2.getAge(); } }
6.自定义根据身份证号排序:
//根据身份证号排序 //创建比较器比较的对象 ByIdCard bc = new ByIdCard(); Collections.sort(list, bc); System.out.println("根据身份证号排序的结果为:n"+list);
6.1 根据身份证号排序的方法:
//根据身份证号排序 class ByIdCard implements Comparator<Person>{ @Override public int compare(Person o1, Person o2) { return o1.getIdCard().compareTo(o2.getIdCard()); } }
四、运行效果图:
今日就到这儿了,喜欢的朋友们可以私信我哟!
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算