JAVA--Comparable接口

39 篇文章 0 订阅
9 篇文章 0 订阅

Comparable接口概述

基本类型数据和String类型数据,它们彼此的比较标准JAVA语言本身已经提供好了;

用户自定义类对象之间比较的标准JAVA语言本身是没有提供的;

如果一个容器中含有用户自定义类型的数据,并需要对容器类型进行排序,或查找某一元素时,必须制定容器中元素间比较的标准;

凡是需要对对象进行排序,查找的场合都可以考虑实现Comparable接口;

Comparable接口的实现

所有可以排序的类都实现的java.lang.Comparable接口,Comparable接口中只有一个方法

public int compareTo(Object obj);

该方法:

返回0时,this==obj

返回正数时, this>obj

返回负数时,this<obj

import java.util.*;

public class TestStudent {
		public static void main(String[] args) {
			List li=new ArrayList();
			li.add(new Student(11,"小明"));
			li.add(new Student(22,"小红"));
			li.add(new Student(33,"小刚"));
			
			Collections.sort(li);
			System.out.println(li);
			
		}
}
class Student implements Comparable{
	private int age;
	private String name;
	public Student(int age,String name) {
		this.age=age;
		this.name=name;
	}
	public String toString() {
		return "age:"+age+" "+"name:"+name;
	}
	public int compareTo(Object obj) {
		Student st=(Student)obj;
	
		if(this.age==st.age)
			return 0;
		else if(this.age>st.age) 
			return 1;
		else
			return -1;
	}
}

运行结果:[age:11 name:小明, age:22 name:小红, age:33 name:小刚]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值