java定义一个泛型接口返回某个对象集最大值和最小值
时间: 2023-11-27 17:54:00 浏览: 188
可以定义一个泛型接口`MinMaxFinder<T>`,其中`T`代表对象的类型,接口中包含两个方法:
1. `T findMax(T[] arr)`:返回`arr`数组中的最大值。
2. `T findMin(T[] arr)`:返回`arr`数组中的最小值。
以下是示例代码:
```java
public interface MinMaxFinder<T extends Comparable<T>> {
T findMax(T[] arr);
T findMin(T[] arr);
}
```
其中,`T extends Comparable<T>`表示泛型`T`必须实现`Comparable`接口,以支持比较大小。
然后,可以实现该接口来返回具体对象集的最大值和最小值。例如,对于整数数组:
```java
public class IntegerMinMaxFinder implements MinMaxFinder<Integer> {
@Override
public Integer findMax(Integer[] arr) {
Integer max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
@Override
public Integer findMin(Integer[] arr) {
Integer min = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
}
```
如果要返回字符串数组的最大值和最小值,可以实现另一个类:
```java
public class StringMinMaxFinder implements MinMaxFinder<String> {
@Override
public String findMax(String[] arr) {
String max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i].compareTo(max) > 0) {
max = arr[i];
}
}
return max;
}
@Override
public String findMin(String[] arr) {
String min = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i].compareTo(min) < 0) {
min = arr[i];
}
}
return min;
}
}
```
这样,就可以实现一个泛型接口来返回任意类型的对象集的最大值和最小值。
阅读全文