1.15 定义一个Rectangle类,该类提供getLength和getWidth方法

1.15 定义一个Rectangle类,该类提供getLength和getWidth方法。利用图1-18中的findMax例程编写 一种main方法,该方法创建一个Rectangle数组并首先找出依面积最大的Rectangle对象,然后 找出依周长最大的Rectangle对象。

import java.util.Comparator; /** * * @author 疯狂龅牙酥 * */ public class One_fifteen {  public static void main(String[] args) {  // TODO Auto-generated method stub Rectangle[] recs = new Rectangle[] { new Rectangle(1,2), new Rectangle(1,3), new Rectangle(1,4), new Rectangle(1,5), new Rectangle(1,6)}; System.out.println(findMax(recs, new AreaComparator()).getArea()); System.out.println(findMax(recs, new CircumferenceComparator()).getCircumference()); } public static <AnyType> AnyType findMax(AnyType[] arr, Comparator<? super AnyType> cmp) {  int maxIndex = 0; for(int i=1; i<arr.length; i++) {  if(cmp.compare(arr[maxIndex], arr[i])<0) {  maxIndex = i; } } return arr[maxIndex]; } } class Rectangle{  private int length; private int width; public Rectangle(int length, int width) {  this.length = length; this.width = width; } public int getLength() {  return this.length; } public int getWidth() {  return this.width; } public int getArea() {  return this.length * this.width; } public int getCircumference() {  return 2 * (this.length + this.width); } } class AreaComparator implements Comparator<Rectangle>{  @Override public int compare(Rectangle o1, Rectangle o2) {  // TODO Auto-generated method stub int area1 = o1.getLength() * o1.getWidth(); int area2 = o2.getLength() * o2.getWidth(); if(area1 < area2) {  return -1; }else if(area1 > area2) {  return 1; }else {  return 0; } } } class CircumferenceComparator implements Comparator<Rectangle>{  @Override public int compare(Rectangle o1, Rectangle o2) {  int c1 = 2*(o1.getLength() + o1.getWidth()); int c2 = 2*(o2.getLength() + o2.getWidth()); if(c1 < c2) {  return -1; }else if(c1 > c2) {  return 1; }else {  return 0; } } } 
全部评论

相关推荐

ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
joe2333:怀念以前大家拿华为当保底的日子
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务