设定比较规则【使用内部比较器comparable】

本文介绍了如何在创建类时设定内部比较规则,通过实现Comparable接口来完成对象的比较。内容包括创建类、测试比较逻辑及对Comparable与Comparator接口的简要说明。
摘要由CSDN通过智能技术生成

1、创建类,同时设定内部比较规则

package com.wyq.Arr;

public class Pers implements Comparable<Pers>{
	/**
	 * person类实现了Compatator接口
	 * 那么他具备一种能力,就是比较的能力
	 */
	private String name;
	private Gender gender;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Gender getGender() {
		return gender;
	}
	public void setGender(Gender gender) {
		this.gender = gender;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public Pers(String name, Gender gender, int age) {
		super();
		this.name = name;
		this.gender = gender;
		this.age = age;
	}
	public Pers() {
		super();
	}
	
	
	@Override
	public int compareTo(Pers o) {
		//按照年龄进行比较
		return this.age-o.getAge();
		//字母的升序进行比较
//		return this.name.compareTo(o.getName());
		//按照字母的长度进行比较
//		return this.name.length()-o.getName().length();
	}
}

2、测试

package com.wyq.Arr;

import java.util.TreeSet;

public class TestPers {
	public static void main(String[] args) {
		//创建treeset对象的集合,明确了存储的对象的类型只能是pers类型
		TreeSet<Pers> ts = new TreeSet<Pers>();
		/**
		 * 因为TreeSet集合存储的元素的特点是:有序,唯一
		 * 需要存储的对象要具备比较规则
		 * 如果存储的自定义对象,不具备比较规则,那么程序就将产生类型转换异常
		 */
		Pers p1 = new Pers("张三",Gender.女,30);
		Pers p2 = new Pers("李四",Gender.男,32);
		Pers p3 = new Pers("王五",Gender.女,31);
		Pers p4 = new Pers("马六",Gender.男,20);
		ts.add(p1);
		ts.add(p2);
		ts.add(p3);
		ts.add(p4);
		System.out.println(ts.size());
		for(Pers str:ts){
			System.out.println(ts);
		}
	}

}

3、总结

omparable与Comparator接口

这两个接口都是具备比较大小的能力

Comparable内部比较器  :由需要比较的类(Person)去实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值