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

Java 如何比较一组数组元素并返回所需的元素,java,Java,我正在构建一个程序,它必须获取一组信息(跑步者和他们的时间),并制定一种方法来比较所有跑步者的时间。我是一个初学者,知道的不多,必须坚持我所知道的。我需要获得2017年最低的跑步者,请引导我走向正确的方向。(我想学习,但没有得到答案!!!)谢谢 我试着比较数组中的所有整数,但这似乎很长,而且也是错误的 public static void main(String[] args) { int runnersTime2017 [] = {357, 299, 432, 326, 275, 45

我正在构建一个程序,它必须获取一组信息(跑步者和他们的时间),并制定一种方法来比较所有跑步者的时间。我是一个初学者,知道的不多,必须坚持我所知道的。我需要获得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;

    }
publicstaticvoidmain(字符串[]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);
}
publicstaticintfastestrunner2017(intarray1[]){//这就是我要做的

如果(Array1[1]解决这个问题最直接的方法是一个

如果我理解您的情况,您可以获取第一个数组的每个值,并将其与第二个数组的每个值进行比较。如果第一个数组的值大于每个值,请打印它。否则,获取更大的值。类似于:

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;
foundValue=runnersTime2017[0];
对于(int i=0;irunnersTime2017[i]){
foundValue=runnersTime2018[j];
}
}
}
返回值;

请注意,这也是一种效率相对较低的方法(O(n^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);
int runnersTime2017[]={357299432326275450265343243264302437273};
int runnersTime2018[]={341、307、328、283、274、359、256、323、269、308、249、340、238};
List allRunner=newarraylist(runnersTime2017.length+runnersTime2018.length);
用于(int r7:runnersTime2017){
allRunner.add(r7);
}
Collections.sort(allRunner);
//这将在storting之后打印2017跑步者
System.out.println(allRunner);
用于(int r8:runnersTime2017){
allRunner.add(r8);
}
//现在在添加2018名跑步者后再次排序
Collections.sort(allRunner);
System.out.println(allRunner);

预期产出是什么?2017年跑得最快的选手?或者2017/2018年ETC之间的差异可能的重复肯定是@JoakimDanielson的重复,但是这些答案中的大多数对于介绍开发人员来说可能太先进了。您做了哪些研究,您是否尝试在线搜索可能的解决方案?更多如果有更合适的答案,是的,这非常接近我所需要的,但是我如何提取一个特定的数字,比如如果我需要前三名运行人员,那么你需要三个“foundValue”变量来跟踪每个变量。此外,你需要更多的逻辑来比较三个“foundValue”中的每一个每个新的数组值进行比较。确切的机制我将留给您,但如果我是您,我将从第一个数组中的前三个值开始,创建一个函数,将这些值中的最小值与要比较的每个新值进行比较,如果新值大于三个值中的最小值,请再次检查另外两个。如果你需要跟踪很多,也许保留一个新的数组是个好主意。谢谢,但是我不熟悉的一些代码有没有其他方法来对数字进行排序Java内置于各种集合类型的排序算法中。它没有比Collections.sort(allRunner)简单多少1.我不知道有什么困惑?