我试图在不使用
的情况下找到最大元素import java.util.Collections
public static int maxArrayListValue(int[] arrayList) {
int maxVal = Integer.MIN_VALUE;
for (int[] qqq : arrayList) {
for (int vvv : qqq) {
if (vvv > maxVal) {
maxVal = vvv;
}
}
}
return maxVal;
}
但我总是在for (int[] qqq : arrayList)
(Type mismatch: cannot convert from element type int to int[])
将其更改为" for (int qqq : arrayList)
"仍然在(int vvv:qqq)
(Can only iterate over an array or an instance of java.lang.Iterable)
答案 0 :(得分:1)
增强的for循环从提供的Collection中获取每个值并处理它。
您的代码应为:
public static int maxArrayListValue(int[] arrayList) {
int maxVal = Integer.MIN_VALUE;
for (int vvv : arrayList) {
if (vvv > maxVal) {
maxVal = vvv;
}
}
return maxVal;
}
答案 1 :(得分:0)
arrayList
是一维数组,因此for (int[] qqq : arrayList)
错误
使用for (int qqq : arrayList)
答案 2 :(得分:0)
试试这个:
public static int maxArrayListValue(int[] arrayList) {
int maxVal = Integer.MIN_VALUE;
for (int qqq : arrayList) {
if(qqq > maxVal){
maxVal = qqq;
}
}
return maxVal;
}
答案 3 :(得分:0)
您将变量qqq
声明为整数数组
这个声明不正确的原因是因为arrayList
是一维数组,意味着它包含整数而不是整数数组。
假设您希望检查方法中arrayList
参数中的每个整数,您需要将int[]
声明替换为int
,以便它检查每个整数而不是每个整数数组。
关于其他错误,不需要嵌套的for
循环。说:
for (int vvv : qqq)
将qqq
声明为整数,你实际上是在说“对于整数中的每个整数”,这是没有意义的 - 因此是错误。
您可以使用qqq
而不是vvv
来检查maxVal
的有效性。·
为了解决你遇到的两个问题,这里有更正的方法:
public static int maxArrayListValue(int[] arrayList) {
int maxVal = Integer.MIN_VALUE;
for (int vvv : arrayList) {
if (vvv > maxVal) {
maxVal = vvv;
}
}
return maxVal;
}
答案 4 :(得分:0)
试试这个:
public static int maxArrayListValue(int[] arrayList) {
int maxVal = 0;
for (int[] i = 0; i < arrayList.length-1; i ++) {
if (arrayList[i] > maxVal) {
maxVal = vvv;
}
}
return maxVal;
}
答案 5 :(得分:-1)
如何使用Streams?虽然int[]
不起作用,但请考虑使用Integer[]
或直接使用List<Integer>
Arrays.asList(arrayList).stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList()).get(0);