1
問題:定義一個提供getLength和getWidth方法的Rectangle類。使用圖1.18中的 findMax例程,編寫一個main,它創建一個Rectangle 的數組,並根據面積,然後根據周長找到最大的Rectangle。如何編寫這個通用對象程序?
我到目前爲止所做的是在構造函數中創建一個帶參數寬度和高度的類矩形。之後,我實現了兩個getter方法,其中實例變量的寬度和高度分別返回其各自的getter方法。所以我需要第二部分的幫助。
圖1.18
1 // Generic findMax, with a function object.
2 // Precondition: a.size() > 0.
3 public static <AnyType>
4 AnyType findMax(AnyType [ ] arr, Comparator<? super AnyType> cmp)
5 {
6 int maxIndex = 0;
7
8 for(int i = 1; i < arr.size(); i++)
9 if(cmp.compare(arr[ i ], arr[ maxIndex ]) > 0)
10 maxIndex = i;
11
12 return arr[ maxIndex ];
13 }
14
15 class CaseInsensitiveCompare implements Comparator<String>
16 {
17 public int compare(String lhs, String rhs)
18 { return lhs.compareToIgnoreCase(rhs); }
19 }
20
21 class TestProgram
22 {
23 public static void main(String [ ] args)
24 {
25 String [ ] arr = { "ZEBRA", "alligator", "crocodile" };
26 System.out.println(findMax(arr, new CaseInsensitiveCompare()))
27 }
28 }
基本上只是使用findMax例程和比較的實施掙扎。我還通過一個數組創建了一堆隨機矩形對象,如您有'findMax'例程的問題 – btrballin 2015-02-10 06:05:03
。所有你需要做的就是定義你的'Comparator',你可以插入。 –
2015-02-10 06:07:00