比较值后获取数组位置

时间:2015-03-09 05:28:39

标签: java

我在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 []数组的位置数。

谢谢你的帮助。

2 个答案:

答案 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;
}

此代码将返回最小索引,并获取名称和年龄。

注意

这只是解决您问题的方法,但实际的解决方案是使用适当的类来表示您的字段。