有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 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)),但对于初学者来说,它应该足够了,而不需要过度思考

  2. # 2 楼答案

    对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);