数据结构与算法分析Java版练习1.15
来源:互联网 发布:查找重复删除知乎 编辑:程序博客网 时间:2024/06/05 15:34
package ch01;import java.util.Comparator;/** * 练习1.15 定义一个Rectangle类,该类提供getLength和getWidth方法。利用图1-18中的findMax例程编写 * 一种main方法,该方法创建一个Rectangle数组并首先找出依面积最大的Rectangle对象,然后 * 找出依周长最大的Rectangle对象。 */class Rectangle {private int width, height;public Rectangle(int width, int height) {this.width = width;this.height = height;}public int getLength() { return (width + height) << 2; }public int getArea() { return width * height; }@Overridepublic String toString() {return "width:" + width + ", height:" + height;}}public class EX15 {public static <T>T findMax(T[] a, Comparator<? super T> cmp) {int maxIndex = 0;for (int i = 0; i < a.length; ++i) {if (cmp.compare(a[i], a[maxIndex]) > 0) {maxIndex = i;}}return a[maxIndex];}static class LengthComparator implements Comparator<Rectangle> {@Overridepublic int compare(Rectangle o1, Rectangle o2) {// TODO Auto-generated method stubif (o1.getLength() == o2.getLength()) return 0;else if (o1.getLength() > o2.getLength()) return 1;else return -1;}}static class AreaComparator implements Comparator<Rectangle> {@Overridepublic int compare(Rectangle o1, Rectangle o2) {// TODO Auto-generated method stubif (o1.getArea() == o2.getArea()) return 0;else if (o1.getArea() > o2.getArea()) return 1;else return -1;}}public static void main(String[] args) {Rectangle[] a = new Rectangle[] {new Rectangle(1, 2), new Rectangle(2, 3), new Rectangle(3, 4),new Rectangle(2, 9), new Rectangle(2, 5), new Rectangle(5, 5),};System.out.println(findMax(a, new LengthComparator()));System.out.println(findMax(a, new AreaComparator()));}}
0 0
- 数据结构与算法分析Java版练习1.15
- 数据结构与算法分析Java版练习1.3
- 数据结构与算法分析Java版练习1.5
- 数据结构与算法分析Java版练习1.6
- 数据结构与算法分析Java版练习1.7
- 数据结构与算法分析Java版练习1.8
- 数据结构与算法分析Java版练习1.11和1.12
- 数据结构与算法分析Java版练习1.13
- 数据结构与算法分析Java版练习1.14
- 数据结构与算法分析Java版练习2.1和2.2
- 数据结构与算法分析Java版练习2.8
- 数据结构与算法分析练习
- 数据结构与算法练习Java版练习1.4
- 数据结构与算法练习Java版练习1.9和1.10
- 数据结构与算法分析Java版第1章练习1.1
- 数据结构与算法分析Java版第1章练习1.2
- 数据结构与算法分析Java版练习2.3,2.4,2.5,2.6和2.7
- 《数据结构与算法分析》第一章练习1.1
- 关于ImageLoader 设置圆角参数后不显示图片的问题
- The Memory Sinkhole
- Hadoop 学习笔记
- inet_ntoa()多次调用时的问题
- 1130 -- 矩阵找值
- 数据结构与算法分析Java版练习1.15
- hadoop新增节点配置步骤
- xml之SAX解析
- x64 release模式下mysql编译连接错误解决办法
- java httpclient basic授权
- Hadoop第4周练习—HDFS读写文件操作
- 删除字符串中的空格字符
- 1131 -- 数列求和
- C++动态数组使用方法