《数据结构与算法分析-java语言描述》 - 1.4.3 使用接口类型表示泛型(代码)

mac2025-07-09  3

       用lang里面的,要重写好多方法。直接在下面重写类算了

应该是这样实现吧。。

package cn.tedu.basic; public class Demo_FindMax { /** * Return max item in arr * Precondition:arr.length>0 * @param arr * @return */ public static Comparable findMax(Comparable[] arr) { int maxIndex = 0 ; for(int i=1 ; i<arr.length ; i++) { if(arr[i].compareTo(arr[maxIndex])>0) { maxIndex = i ; } } return arr[maxIndex] ; } /** * Test findMax on Shape and String objects. * @param args */ public static void main(String[] args) { String[] st1 = { "123", "222", "a33", "1" }; System.out.println(findMax(st1)); Shape[] sh1 = { new Circle(2.0), new Shape(3.0), new Rectangle(3.0 , 4.0) }; System.out.println(findMax(sh1).getClass()); } } class Shape implements Comparable{ //形状 double area; public Shape(double area){ this.area = area; } @Override public int compareTo(Object o) { Shape anotherShape = (Shape) o; return (int) (this.area - anotherShape.area); } } class Circle extends Shape{ //圆形 public Circle(double r) { super(r*r*Math.PI); } } class Rectangle extends Shape{//矩形 public Rectangle(double l , double w ) { super(l*w); // TODO Auto-generated constructor stub } }
最新回复(0)