替换数组的最低值

时间:2013-11-18 17:09:29

标签: java arrays sorting

我有一个包含三个整数的数组和一个包含三个字符串的数组。

我希望能够在数组中找到最低的int,如果“next value”更高,则替换它。如果替换了最低的int,我想替换相应的字符串。

int [] counts = {matchA, matchB, matchC};
String [] names = {nameA, nameB, nameC};

例如,say matchA为6,matchB为4,matchC为10,nameA为bob,nameB为Fred,nameC为jake。

这些名称对应于各自位置的整数。

如果新用户的计数是15,我想替换matchB,因为它是最低的并替换nameB,因为它是相应的名称。

我将如何编码?

感谢!!!!!

2 个答案:

答案 0 :(得分:0)

因此,您需要找到最低值的索引,然后将新值应用于该索引处的每个数组。

//This solution assumes counts and names are the same length.
int min = counts[0];
int index = 0;
for(int i = 1; i < counts.length; i++){
   if(counts[i] < min){
      index = i;
      min = counts[i];
   }
}
counts[index] = newCount;
names[index] = newName;

答案 1 :(得分:0)

它有效..

public static void main(String[] args) {
    int [] counts = {6, 4, 10};
    String [] names = {"Alis", "Pop", "Fred"};
    System.out.println(Arrays.toString(counts));
    System.out.println(Arrays.toString(names));
    int newCount = 15;
    String newUser = "Jhon";
    int min = counts[0], position = 0;
    for(int i = 1 ; i < counts.length; i++)
        if(counts[i] < min){
            min = counts[i];
            position = i;
        }
    if(min < newCount){
        counts[position] = newCount;
        names[position] = newUser;
    }
    System.out.println(Arrays.toString(counts));
    System.out.println(Arrays.toString(names));
}