Я пытаюсь создать массив для моего времени простоя, но мне нужно попытаться связать 2 списка вместе, чтобы распечатать их - PullRequest
1 голос
/ 30 марта 2020

Так что мне пришлось покинуть курс колледжа, чтобы помочь с коронавирусом, и я пытаюсь сделать массив на время простоя, но мне нужно попытаться связать 2 списка вместе, чтобы распечатать их, может кто-нибудь помочь.

Я пытаюсь это сделать, я понимаю теорию о том, как это работает, но мне просто нужно указать правильные направления

public static void main(String[] args) {  

    String []  fastestTimes = new String [10];
    double [] athletes = new double [10];

    fastestTimes [0] = "Richard Thompson";
    fastestTimes [1] = "Nesta Carter";
    fastestTimes [2] = "Usain Bolt";
    fastestTimes [3] = "Asafa Powel";
    fastestTimes [4] = "Tyson Ga";
    fastestTimes [5] = "Maurice Greene";
    fastestTimes [6] = "Justin Gatlin";
    fastestTimes [7] = "Christian Coleman";
    fastestTimes [8] = "Yohan Blake";
    fastestTimes [9] = "Steve Mullings";



    athletes [0] = 9.82;
    athletes [1] = 9.78;
    athletes [2] = 9.92;
    athletes [3] = 9.72;
    athletes [4] = 9.69;
    athletes [5] = 9.79;
    athletes [6] = 9.74;
    athletes [7] = 9.76;
    athletes [8] = 9.69;
    athletes [9] = 9.80;




    System.out.println("Array Before Bubble Sort");  

    for(double i=0; i < fastestTimes.length; i++){
        System.out.print(fastestTimes[(int) i] + " ");      
    }  
    System.out.println();  

    bubbleSort(fastestTimes);//sorting array elements using bubble sort  

    System.out.println("Array After Bubble Sort");  
    for(int i=0; i < fastestTimes.length; i++){  
        System.out.print(fastestTimes[(int) i] + " ");  
    }  

}  

}

Ответы [ 2 ]

1 голос
/ 30 марта 2020

Вместо того, чтобы делать это с использованием отключенных наборов данных, что является сложным и подверженным ошибкам способом, вы должны сделать это, используя концепцию OOP (объектно-ориентированное программирование). Ниже приведен пример, который вы можете расширить / настроить в соответствии с вашими требованиями:

import java.util.Arrays;
import java.util.Comparator;

class Athlete {
    private String name;
    private double fastestTime;

    public Athlete(String name, double fastestTime) {
        this.name = name;
        this.fastestTime = fastestTime;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getFastestTime() {
        return fastestTime;
    }

    public void setFastestTime(double fastestTime) {
        this.fastestTime = fastestTime;
    }

    @Override
    public String toString() {
        return "Athlete [name=" + name + ", fastestTime=" + fastestTime + "]";
    }
}

public class Main {
    public static void main(String[] args) {
        Athlete[] athletes = new Athlete[3];
        athletes[0] = new Athlete("Richard Thompson", 9.82);
        athletes[1] = new Athlete("Nesta Carter", 9.78);
        athletes[2] = new Athlete("Usain Bolt", 9.92);

        System.out.println("Before sorting:");
        for (Athlete athlete : athletes) {
            System.out.println(athlete);
        }

        // Sort the array by fastestTime
        Arrays.sort(athletes, Comparator.comparing(Athlete::getFastestTime));

        System.out.println("Before sorting:");
        for (Athlete athlete : athletes) {
            System.out.println(athlete);
        }    
    }
}

Выход:

Before sorting:
Athlete [name=Richard Thompson, fastestTime=9.82]
Athlete [name=Nesta Carter, fastestTime=9.78]
Athlete [name=Usain Bolt, fastestTime=9.92]
Before sorting:
Athlete [name=Nesta Carter, fastestTime=9.78]
Athlete [name=Richard Thompson, fastestTime=9.82]
Athlete [name=Usain Bolt, fastestTime=9.92]
1 голос
/ 30 марта 2020

Предполагая, что под "ссылкой" вы подразумеваете показ скорости для каждого спортсмена, попробуйте следующее:

for(int i=0; i < fastestTimes.length; i++){
    System.out.print(athletes[i] + ": " + fastestTimes[i] + " seconds");      
}

В массиве от for l oop до go вы хотите индекс. Индекс (i) является int. Если вы сделаете это double, то вы будете вынуждены разыграть ничего не так, как вы делали.

Если мое понимание того, что вы подразумеваете под «связыванием» двух списков вместе, является правильным, вы также можете захотеть взять взгляд на java.util.Map. Это как словарь, в котором что-то (ключ) отображается на что-то другое (значение). В реальном словаре слово соответствует его определению. Если вы знаете это слово, вы можете найти определение.

В вашем случае вы можете рассмотреть возможность сопоставления имени спортсмена с его временем и не иметь при себе двух списков.

Просто мысль для дальнейшего чтения всякий раз, когда у вас снова есть время:)

...