`
lzs2014193
  • 浏览: 24995 次
  • 性别: 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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics