如何比较一组元素的数组并返回所需的元素

时间:2019-04-17 18:30:51

标签: java

我正在构建一个程序,它必须获取一组信息(跑步者及其时间),并制定一种可以比较所有跑步者时间的方法。我是一个初学者,并不了解很多,必须坚持我所知道的。我需要在2017年获得最低的参赛者,请引导我朝正确的方向前进。 (我想学习但没有得到答案!!!)谢谢!

我试图比较数组的所有整数,但这看起来很长而且也是错误的

public static void main(String[] args) {
    int runnersTime2017 [] = {357, 299, 432, 326, 275, 450, 265, 343, 264, 308, 242, 377, 273};
    int runnersTime2018 [] = {341, 307, 328, 283, 274, 359, 256, 323, 269, 308, 249, 340, 238};
    fastestRunner2017(runnersTime2017);


 }

public static int fastestRunner2017(int Array1 []){ //This is what I am trying to do


    if (Array1[1] <= Array1[]){

        System.out.println(T1);

        return T1;

    }
    //This is what I did before and seemed wrong
    else if (T2 <= T1 && T2 <= T3 && T2 <= T4 && T2 <= T5 && T2 <= T6 && T2 <= T7 && T2 <= T8 && T2 <= T9 && T2 <= T10 && T2 <= T11 && T2 <= T12 && T2 <= T13){

        System.out.println(T2); 

        return T2;
    }    

    else if (T3 <= T1 && T3 <= T2 && T3 <= T4 && T3 <= T5 && T3 <= T6 && T3 <= T7 && T3 <= T8 && T3 <= T9 && T3 <= T10 && T3 <= T11 && T3 <= T12 && T3 <= T13){

        System.out.println(T3);

        return T3;
    }

    else if (T4 <= T1 && T4 <= T2 && T4 <= T3 && T4 <= T5){
        System.out.println(T4);

        return T4;
    }

    else {

        System.out.println(T13);
        return T13;

    }

我想将数组的一部分与其余部分进行比较

2 个答案:

答案 0 :(得分:1)

解决这个问题的最直接的方法是使用for-loop

如果我在这里了解您的情况,您将获取第一个数组的每个值,并将其与第二个数组的每个值进行比较。如果该第一个数组的值大于每个数组的值,则将其打印出来。否则,取更大的价值。像这样:

foundValue = runnersTime2017[0];
for (int i = 0; i < runnersTime2017.length; ++i) {
    for (int j = 0; j < runnersTime2018.length; ++j) {
        if (runnersTime2018[j] > runnersTime2017[i]) {
            foundValue = runnersTime2018[j];
         }
    }
}
return foundValue;

请注意,这也是一种效率相对较低的方法(O(n ^ 2)),但对于初学者来说,就足够了而不必费神。

答案 1 :(得分:0)

如何对Int数组进行排序并获取第一个或最后一个值

     int runnersTime2017 [] = {357, 299, 432, 326, 275, 450, 265, 343, 264, 308, 242, 377, 273};

        int runnersTime2018 [] = {341, 307, 328, 283, 274, 359, 256, 323, 269, 308, 249, 340, 238};

       List<Integer> allRunner= new ArrayList<>(runnersTime2017.length+runnersTime2018.length);

     for(int r7 :runnersTime2017) {
         allRunner.add(r7);

     }
     Collections.sort(allRunner);
     //this prints the 2017 runners after storting
     System.out.println(allRunner);
     for(int r8 :runnersTime2017) {
         allRunner.add(r8);
     }
     //now sort again after adding 2018 runners  
     Collections.sort(allRunner);
     System.out.println(allRunner);