Итак, для моей школы я должен написать Java-программу, которая отслеживает время, когда спортсмен проходил 2 отдельных курса, курс по гравию и траве. Они имеют разную длину и особые условия. Однако они должны быть помещены в одну коллекцию. Я бы использовал ArrayList для этого, однако это второй курс Java, который нам дают, и, так как мы использовали ArrayList в прошлый раз, мы должны использовать что-то другое. 2 новых коллекции, которым они научили нас, это HashMap и HashSet. И я подумал, что буду использовать Hashmap, используя 2 типа треков в качестве ключей, и время, установленное бегунами в качестве значений. Но есть проблема. Хеш-карта может хранить только 1 значение на ключ, = 1 объект GrassRound или GravelRound на ключ. И я честно заблудился, как я могу решить это. Мы также узнали об обёртке, и я подумал, что смогу это использовать, однако не смог найти никакой информации о том, как добавить другой объект в обёртку после его первоначального создания.
Мой код (или то, что я хочудля достижения)
import java.sql.Wrapper;
import java.util.HashMap;
public class Athlete
{
private String name;
public HashMap<String, Wrapper> rounds;
public Athlete(String name)
{
this.name = name;
this.rounds = new HashMap<>();
}
public void addRound(String type, Round round)
{
switch(type)
{
case "grass":
//Add a grass round to the Hashmap please
break;
case "gravel":
//Add a gravel round to the Hashmap please
break;
}
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public HashMap<String, Wrapper> getRounds()
{
return rounds;
}
}
Дополнительное примечание, GrassRound и GravelRound являются расширенными объектами из класса Round, поэтому я могу сказать моей программе, что она получит объект Round, а затем передать его либо объекту Gravel, либо Grassround. ? Изначально у меня было 2 метода, добавляющих газон или гравий, но им это не понравилось.
РЕДАКТИРОВАТЬ: Вот полный вопросник задания, поэтому у каждого есть соответствующий контекст:
Де Сперверс,В местном клубе легкой атлетики из Эммена в настоящее время есть большая бумажная администрация всех PR и дистанций их спортсменов. Чтобы избавиться от всей бумажной работы, они хотят, чтобы простое приложение регистрировало все данные. Для каждого спортсмена они хотят видеть, сколько раундов спортсмен пробежал в какое время. Доступны различные трассы: трасса для травы на 300 м и гравийная трасса на 400 м. Чтобы компенсировать сложность травяной трассы, время пробега на этой трассе будет сокращено на 5 секунд. Клуб также хочет знать трек рекордного клуба: спортсмен, которыйявляется самым быстрым на определенном треке. Для каждого спортсмена должны быть рассчитаны:
• Общее расстояние в км. • Среднее время на круг.
• Максимальная скорость (м / с).
• Общее время бега спортсмена.
Клуб хочет показать самого быстрого спортсмена и его / ее самый быстрый круг.