定义重载方法getMax(),要求如下: 返回元素是int类型的一维数组的最大值; 返回元素是doule类型的二维数组的最大值; 返回元素是float类型的Vector中的最大值; 返回元素是String类型的二维数组的最大字符串
时间: 2024-09-18 21:17:29 浏览: 58
java 输入一个数字组成的数组(输出该数组的最大值和最小值)
在Java中,为了实现这个需求,你可以定义一个包含泛型的方法,因为Java支持方法的重载(Overloading)。这样可以处理不同数据类型的数组和集合。以下是四个`getMax()`方法的示例:
1. 对于整数一维数组:
```java
public int getMax(int[] arr) {
if (arr != null && arr.length > 0) {
return Arrays.stream(arr).max().orElse(Integer.MIN_VALUE);
}
throw new IllegalArgumentException("Array must not be empty or null");
}
```
2. 对于双精度浮点型二维数组:
```java
public double getMax(double[][] arr) {
if (arr != null && arr.length > 0) {
return Arrays.stream(arr).flatMapToDouble(Arrays::stream)
.max().orElse(Double.NEGATIVE_INFINITY);
}
throw new IllegalArgumentException("Array must not be empty or null");
}
```
3. 对于单精度浮点型的Vector:
```java
import java.util.ArrayList;
import java.util.List;
public float getMax(Vector<Float> vector) {
if (vector != null && !vector.isEmpty()) {
return Collections.max(vector.elements(), Float::compareTo);
}
throw new IllegalArgumentException("Vector must not be empty or null");
}
// Vector类假设已经存在,例如来自Apache Commons Lang库
class Vector<T extends Comparable<T>> {
private List<T> elements;
// ...其他方法...
}
```
4. 对于字符串二维数组:
```java
public String getMax(String[][] strArr) {
if (strArr != null && strArr.length > 0) {
return Arrays.stream(strArr)
.mapToInt(row -> row.length > 0 ? row[0].length() : 0)
.max().orElse(0)
+ " character string";
}
throw new IllegalArgumentException("Array must not be empty or null");
}
```
阅读全文