java采用泛型编写一个针对int型数组、float型数组、double型数组求平均值的功能类
时间: 2024-01-21 11:02:15 浏览: 127
可以使用泛型来编写一个针对 int 型数组、float 型数组、double 型数组求平均值的功能类。以下是一个示例代码:
```java
public class Average<T extends Number> {
private T[] array;
public Average(T[] array) {
this.array = array;
}
public double getAverage() {
double sum = 0;
for (T num : array) {
sum += num.doubleValue();
}
return sum / array.length;
}
public static void main(String[] args) {
Integer[] intArray = {1, 2, 3, 4, 5};
Average<Integer> intAverage = new Average<>(intArray);
System.out.println("Int array average: " + intAverage.getAverage());
Float[] floatArray = {1.0f, 2.0f, 3.0f, 4.0f, 5.0f};
Average<Float> floatAverage = new Average<>(floatArray);
System.out.println("Float array average: " + floatAverage.getAverage());
Double[] doubleArray = {1.0, 2.0, 3.0, 4.0, 5.0};
Average<Double> doubleAverage = new Average<>(doubleArray);
System.out.println("Double array average: " + doubleAverage.getAverage());
}
}
```
在上面的代码中,我们使用了泛型类 `Average` 来封装求平均值的功能。该类使用了泛型 `T`,并使用 `extends` 来限定 `T` 必须是 `Number` 的子类。这样,我们就可以在方法中使用 `T` 类型的数值了。
在 `Average` 类中,我们定义了一个数组 `array`,并在构造方法中将传入的数组赋值给它。然后我们实现了一个 `getAverage` 方法,用于计算数组中所有数值的平均值。在 `getAverage` 方法中,我们使用了一个增强型的 for 循环来遍历数组中的所有元素,并将它们的值累加到变量 `sum` 中。最后,我们将 `sum` 除以数组长度,即可得到平均值。
在代码的 `main` 方法中,我们分别创建了一个 `Integer` 数组、一个 `Float` 数组和一个 `Double` 数组,并分别使用 `Average` 来计算它们的平均值。
阅读全文