如果您需要返回多个索引,则需要的不仅仅是int。根据您之后计划如何处理数据,我建议您返回一个数组或一个字符串,然后将该值传递给另一个方法进行处理。
我建议将问题分解为两部分,首先查找并计算最大值实例的数量,然后获取最大值的索引。如果要返回数组中的索引,则需要单步执行两次(这是使用标准数组,而不是可扩展的 ArrayList)。如果要将索引作为字符串返回,则只需执行一次。
public static int[] methodname3(int d[]) {
int largest = d[0] - 1; // this makes sure that negative values are checked
int instances = 0;
int[] indices = null;
for (int i = 0; i < d.length; i++){
if (d[i] > largest){
largest = d[i];
instances = 1;
}
else if(d[i] == largest){
instances++;
}
}
indices = new int[instances];
for(int i = 0, j = 0; i < d.length; i++){
if(d[i] == largest){
indices[j] = i;
j++;
}
}
return indices;
}
如果您想将索引作为字符串返回,您可以一次性完成整个操作,如下所示:
public static String methodname3(int d[]){
int largest = d[0] - 1;
String indices = "";
for (int i = 0; i < d.length; i++){
if (d[i] > largest){
largest = d[i];
indices = i; // This resets the String each time a larger value is found
}
else if(d[i] == largest){
indices = indices + " " + i;
// This results in a space delimited String of indices
}
}
return indices;
}