以下是课程。静态方法findMax
返回arr[maxIndex]
,当我尝试在main方法中打印出来时,我得到一个内存位置而不是值。我想在数组的某个索引处打印出一个值。
我想打印该值,但不更改现有方法 (所以我必须通过主要解决问题。)
public class Problem1
{
public static <AnyType extends Comparable<AnyType>> AnyType findMax(AnyType[] arr)
{
int maxIndex = 0;
for (int i = 1; i < arr.length; i++)
if ( arr[i].compareTo(arr[maxIndex]) > 0 )
maxIndex = i;
return arr[maxIndex];
}
public static void main(String[ ] args)
{
Rectangle rect1 = new Rectangle(1,2);
Rectangle rect2 = new Rectangle(2,2);
Rectangle rect3 = new Rectangle(3,2);
Rectangle rect4 = new Rectangle(4,2);
Rectangle rect5 = new Rectangle(5,3);
Rectangle[ ] rectangles = new Rectangle[5];
rectangles[0] = rect1;
rectangles[1] = rect2;
rectangles[2] = rect3;
rectangles[3] = rect4;
rectangles[4] = rect5;
System.out.println(findMax(rectangles));
}
}
答案 0 :(得分:2)
您的findMax()
方法会返回Rectangle
。默认情况下,Java不知道如何打印Rectangle
。因此,您需要覆盖该类的toString()
。目前,正在使用默认的Object.toString()
,它只是打印哈希码。
答案 1 :(得分:0)
覆盖Rectangle类的toString方法