`
lzs2014193
  • 浏览: 25574 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

J2SE_自定义Comparator实现对象比较

    博客分类:
  • Java
阅读更多
 import java.util.Comparator;
import java.util.Scanner;
/**
 * 现在有一只黑猫黑一只白猫,为了节省猫粮,我们要比较高矮胖瘦然后做出取舍
 * 请用面向对象思想来设计,同时要求编码实现程序
 * @author 眼镜哥哥爱编程
 */
public class TestComparator{
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("输入白猫高矮:");
		int whiteHeigth = s.nextInt();
		System.out.print("输入白猫轻重:");
		int whiteWeight = s.nextInt();
		System.out.print("输入黑猫高矮:");
		int blackHeight = s.nextInt();
		System.out.print("输入黑猫轻重:");
		int blackWeight = s.nextInt();
		System.out.println("比较结果:");
		Cat catWhite = new Cat(whiteHeigth,whiteWeight);
		Cat catBlack = new Cat(blackHeight,blackWeight);
		TestComparator.heightResult(catWhite, catBlack);
		TestComparator.weightResult(catWhite, catBlack);
	
	}
	public static void heightResult(Cat catWhite,Cat catBlack){
		Comparator<Cat> c = new HeightComparator();
		catWhite.c = c;
		catBlack.c = c;
		int result =  catWhite.compareTo(catBlack);
		if(result == 1){
			System.out.println("白猫比黑猫高");
		}else if(result == -1){
			System.out.println("白猫比黑猫矮");
		}else{
			System.out.println("白猫与黑猫一边高");
		}
	}
	public static void weightResult(Cat catWhite,Cat catBlack){
		Comparator<Cat> c = new WeightComparator();
		catWhite.c = c;
		catBlack.c = c;
		int result = catWhite.compareTo(catBlack);
		if(result == 1){
			System.out.println("白猫比黑猫重");
		}else if(result == -1){
			System.out.println("白猫比黑猫轻");
		}else{
			System.out.println("白猫与黑猫一样重");
		}
		
	}
}
class Cat implements Comparable<Cat>{
	public Comparator<Cat> c = null;
	public int height ;
	public int weight ;
	
	public Cat(){}
	public Cat(int height,int weight){
		this.height = height;
		this.weight = weight;
	}
	
	public int compareTo(Cat cat){
		return c.compare(this,cat);
	}

}
class HeightComparator implements Comparator<Cat>{
	public int compare(Cat c1,Cat c2){
		if(c1.height > c2.height){
			return 1;
		}else if(c1.height < c2.height){
			return -1;
		}else{
			return 0;
		}
	}

}
class WeightComparator implements Comparator<Cat>{
	public int compare(Cat c1,Cat c2){
		if(c1.weight > c2.weight){
			return 1;
		}else if(c1.weight < c2.weight){
			return -1;
		}else{
			return 0;
		}
	}

}

 


 
 

  • 大小: 6 KB
  • 大小: 5.2 KB
分享到:
评论

相关推荐

    J2SE_API J2SE_API

    J2SE_API、J2SE_API、J2SE_API、J2SE_API、J2SE_API、J2SE_API、J2SE_API

    J2SE_5.0_第06章_常用类2.rar

    J2SE_5.0_第06章_常用类2.rar

    J2SE_J2EE帮助文档

    "J2SE_J2EE_Api.chm"文件很可能是一个包含J2SE和J2EE API的综合指南,其中涵盖了各种类、接口和方法的解释,是学习和开发Java应用的重要参考资料。 总的来说,掌握J2SE和J2EE的知识对于Java开发者来说至关重要,...

    JDK中文文档 J2SE_API中文文档(1)

    JDK中文文档 J2SE_API中文文档由于比较大,压缩成两个文件上传

    J2SE6.0_Api_CN.zip_J2SE6.0_Api_CN_J2se6.0_apidoc_j2se 6.0_APIDOC

    Java 2 Platform, Standard Edition (J2SE) 6.0 API中文版是Java开发者的重要参考资料,它提供了Java编程语言和Java平台核心类库的详细文档。这个压缩包`J2SE6.0_Api_CN.zip`包含了J2SE 6.0的API中文文档,方便中国...

    j2se.rar_j2EE api_j2se_j2se.c

    这个压缩包"j2se.rar_j2EE api_j2se_j2se.c"显然包含了与 J2EE 和 Java Standard Edition (J2SE) 相关的资源,尤其是 J2EE 的API文档以及可能的 J2SE 相关代码示例。 J2SE 是 Java 平台的核心部分,它为桌面应用和...

    J2SE_API_chs

    "J2SE_API_chs" 是 J2SE API 的中文版文档,对于中文用户来说,学习和查阅 Java 相关知识点变得更加方便。 1. **基础类库**:J2SE API 包括了许多基础类库,如集合框架(java.util 包)、I/O 流(java.io 包)、多...

    liyingfang.rar_JDBC SQL SERVER_j2se_j2se sql_java jdbc_销售系统

    本文将深入探讨“丽婴房库存销售系统”,该系统采用C/S(客户端/服务器)架构,利用Java J2SE技术,通过JDBC(Java Database Connectivity)实现与SQL SERVER数据库的连接,从而将供应商、仓库、门店及客户这四大...

    J2SE_of_ezPuzzle_ACG同人拼图小游戏.7z

    J2SE_of_ezPuzzle ACG同人拼图小游戏 ============================================= 无聊练习编程时制作的小程序,估计感兴趣的人不多! 不过工作之余放松一下也是很值得的! 【注意】运行此程序需要系统...

    (java)J2SE_核心技术基础

    本教程“J2SE_核心技术基础”针对Java初学者,通过详实的例子代码帮助学习者快速掌握Java编程的基本概念和技巧。 一、Java语言基础 Java是一种面向对象的编程语言,其设计目标是简洁、安全、高效。学习Java首先要...

    JDK中文文档 J2SE_API中文文档(2)

    JDK中文文档 J2SE_API中文文档(2)第二部分(共两部分)

    j2se_TankWar_坦克大战练习项目(单机版)

    这个项目“j2se_TankWar_坦克大战练习项目(单机版)”就是基于J2SE环境构建的一个游戏项目,非常适合Java初学者进行实践和学习。J2SE提供了丰富的API,包括核心类库、I/O流、网络编程、多线程、图形用户界面(GUI)...

    J2SE_5.0 API

    一份我觉得不错的中文J2SE API文档,拿来给大家一起分享

    java_movestar.rar_j2se_线程控制

    在这个名为"java_movestar.rar_j2se_线程控制"的压缩包中,我们很显然会探讨如何在J2SE环境中使用线程来控制程序的执行,特别是针对一个有趣的实例——在屏幕上画出移动的星星。 线程在计算机科学中是并发执行的...

    JDK_API_J2SE_6_中文版

    《JDK_API_J2SE_6_中文版》是针对Java 2 Platform Standard Edition (J2SE) 6.0的API文档的中文版本。这个文档对于Java开发者来说至关重要,因为它详细介绍了Java SE 6平台的核心类库和接口,帮助程序员理解和使用...

    j2se_中文版

    Java 2 Platform, Standard Edition(J2SE)是Java开发平台的一个重要组成部分,主要用于桌面应用和服务器端开发。中文版的J2SE API文档对于中国开发者来说尤其方便,它提供了全面的API参考,帮助理解并使用Java编程...

    解析WireShark抓包软件的pcap文件,J2SE_ParsePcap.zip

    解析WireShark抓包软件的pcap文件,J2SE_ParsePcap

    J2SE_Java_Api.zip

    Java API,全称为Java Application Programming Interface,是一组预先定义好的类和...这个名为“J2SE_Java_Api.zip”的压缩包,很可能包含了完整的J2SE API文档,供开发者参考学习,以便更好地理解和使用Java API。

    JAVA参考大全_J2SE_5EDITION(世界级程序设计大师作品)-1

    JAVA参考大全_J2SE_5EDITION(世界级程序设计大师作品)

    JAVA参考大全_J2SE_5EDITION(世界级程序设计大师作品)-5

    JAVA参考大全_J2SE_5EDITION(世界级程序设计大师作品)

Global site tag (gtag.js) - Google Analytics