利用泛型定义一数组操作类GenericOperator,操作对象为数值类型数组,数值类型包括Integer, Short, Byte, Double, Float等。 在操作类中提供若干静态方法,实现对任意数值类型数组的下述操作, 1. 求平均值 averageValue(T[] t) 2. 求数组最大元素 maxElement(T[] t) 3. 对数组元素采用冒泡方法进行排序 bubbleSort(T[] t) ,5. 求两长度相同数组和,6. 输出数组元素 print(T[] list)
时间: 2023-06-13 09:07:41 浏览: 77
下面是利用泛型定义的数组操作类GenericOperator的实现:
```java
public class GenericOperator<T extends Number> {
// 求平均值
public static <T extends Number> double averageValue(T[] t) {
double sum = 0;
for (T i : t) {
sum += i.doubleValue();
}
return sum / t.length;
}
// 求数组最大元素
public static <T extends Comparable<T>> T maxElement(T[] t) {
T max = t[0];
for (T i : t) {
if (i.compareTo(max) > 0) {
max = i;
}
}
return max;
}
// 对数组元素采用冒泡方法进行排序
public static <T extends Comparable<T>> void bubbleSort(T[] t) {
for (int i = 0; i < t.length - 1; i++) {
for (int j = 0; j < t.length - i - 1; j++) {
if (t[j].compareTo(t[j + 1]) > 0) {
T temp = t[j];
t[j] = t[j + 1];
t[j + 1] = temp;
}
}
}
}
// 求两长度相同数组和
public static <T extends Number> double arraySum(T[] t1, T[] t2) {
double sum = 0;
for (int i = 0; i < t1.length; i++) {
sum += t1[i].doubleValue() + t2[i].doubleValue();
}
return sum;
}
// 输出数组元素
public static <T> void print(T[] list) {
for (T i : list) {
System.out.print(i + " ");
}
System.out.println();
}
}
```
其中,我们使用了泛型 T extends Number 来限制操作对象为数值类型数组,使用了通配符 T extends Comparable<T> 来限制操作对象为可比较类型。在实现每个静态方法时,我们都使用了泛型方法来定义,以便在方法调用时自动推断参数类型。
阅读全文