我在java中有这个问题:
我有两个数组,age []和name [] | age是INT,name是String。
然后我有这个数据
姓名|年龄
John 40
Sarah 27
James 78
特里14
我需要做的是获得列表中最年轻的一个。到目前为止我所做的是创建一个比较整数的代码:
public static int smallest(int[] array)
{
int min = array[0];
for (int k = 1; k < array.length; k++)
{
if (array[k] < min)
{
min = array[k];
}
}
return min;
}
所以我的方法|函数返回是14,这是正确的。但是,我需要得到这个名字,特里。我有数组Age的值,但我无法想办法获得name []数组的位置数。
谢谢你的帮助。
答案 0 :(得分:2)
不要跟踪最小年龄,而是跟踪最小年龄的指数。然后,您可以使用该索引查找名称和年龄以及其他任何内容(如果您将来会得到更多数据。
这会稍微改变您的比较。而不是:
if (array[k] < min)
您需要这样做:
if (array[k] < array[min])
而不是:
min = array[k];
您想要这样做:
min = k;
您还希望从int min = 0
开始。
然后在函数结束时,min将代表最年轻人的索引,您可以使用索引查找姓名和年龄。
答案 1 :(得分:1)
public static int smallest(int[] array)
{
int min = array[0];
int minimumIndex = 0;
for (int k = 1; k < array.length; k++)
{
if (array[k] < min)
{
min = array[k];
minimumIndex = k;
}
}
return minimumIndex;
}
此代码将返回最小索引,并获取名称和年龄。
注意强>:
这只是解决您问题的方法,但实际的解决方案是使用适当的类来表示您的字段。