[英]Java arrays returning highest array index
我应该写一个程序,在未排序的整数数组中找到最大的索引。
使用将整数数组作为参数的方法。 该方法应搜索数组并返回最大值的索引。
因此,我编写了一个返回最高值的程序,例如,它返回13作为最高数字,而不是索引2。那么,我将如何返回索引而不是最高数字本身? 如果这很容易解决,那么我其余的代码看起来正确吗? 谢谢!
public class LargestInteger
{
public static void main(String[] args)
{
int[] largeArray = {5,4,13,7,7,8,9,10,5};
System.out.println(findLargest(largeArray));
}
public static int findLargest(int array[])
{
int largest = array[0];
for(int i = 0; i < array.length; i++)
{
if(array[i] > largest)
largest = array[i];
}
return largest;
}
}
在Java 8中,您可以简单地做到这一点:
获得最高的:
int[] largeArray = {5,4,13,7,7,8,9,10,5};
System.out.println(IntStream.of(largeArray).max().getAsInt());
结果:13
并总结一下:
System.out.println(IntStream.of(largeArray).sum());
结果:68
也可以做到,
int[] largeArray = {5,4,13,7,7,8,9,10,5};
int largestElement = findLargest(largeArray);
int index = Arrays.asList(5,4,13,7,7,8,9,10,5).indexOf(largestElement);
您需要保留并存储最大的索引。 尝试这个:
public static int findLargest(int array[])
{
int largest = array[0];
int largestIndex = 0;
for(int i = 0; i < array.length; i++)
{
if(array[i] > largest) {
largest = array[i];
largestIndex =i;
}
}
return largestIndex;
}
在方法末尾创建一个for
循环,并创建一个类似index
的变量。 搜索列表,查找变量是否匹配,记住每次都要增加index
变量。
例:
int index = 0;
for (int i : array)
{
if (i == largest)
{
break;
}
index++;
}
return index;
您可以添加获取最大数字和数组的附加方法,然后搜索该数字的索引:
public class LargestInteger
{
public static void main(String[] args)
{
int[] largeArray = {5,4,13,7,7,8,9,10,5};
System.out.println(indexOfLargest(largeArray, findLargest(largeArray)));
}
public static int findLargest(int array[])
{
int largest = array[0];
for(int i = 0; i < array.length; i++)
{
if(array[i] > largest)
largest = array[i];
}
return largest;
}
public static int indexOfLargest(int array[], int number)
{
for (int i = 0; i < array.length; i++) {
if (array[i] == number)
return i;
}
return -1;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.