把找出数组的最大值案例,改造成方法getMax,可以支持返回任意整型数组的最大值数据。
时间: 2024-04-16 09:28:49 浏览: 138
好的,下面是一个改造后的getMax方法,可以返回任意整型数组的最大值数据:
```java
public static int getMax(int[] arr) {
if (arr == null || arr.length == 0) {
throw new IllegalArgumentException("数组不能为空!");
}
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
```
这个方法接受一个整型数组作为参数,首先检查数组是否为null或长度为0,如果是,则抛出一个IllegalArgumentException异常。接着,定义一个max变量,初始化为数组的第一个元素。然后使用循环遍历数组,比较每个元素与max的大小,如果当前元素大于max,则更新max的值。最后返回max,即为数组的最大值。
你可以调用这个方法,并传入一个整型数组,它会返回数组中的最大值。
相关问题
给数组的原型对象添加方法,getMax,getMin,getAvg,求数组元素的最大值,最小值,平均值
Array.prototype.getMax = function() {
return Math.max.apply(null, this);
}
Array.prototype.getMin = function() {
return Math.min.apply(null, this);
}
Array.prototype.getAvg = function() {
var sum = this.reduce(function(acc, val) {
return acc + val;
}, 0);
return sum / this.length;
}
定义重载方法getMax(),要求如下: 返回元素是int类型的一维数组的最大值; 返回元素是doule类型的二维数组的最大值; 返回元素是float类型的Vector中的最大值; 返回元素是String类型的二维数组的最大字符串
在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");
}
```
阅读全文