计划1:你是一名跑步者,你正在接受比赛训练。您希望跟踪训练时间的所有时间。你只想在湖泊周围奔跑。这是一些示例数据,
Calhoun, 45.15
Calhoun, 43.32
Harriet, 49.34
Harriet, 44.43
Harriet, 46.22
Como, 32.11
Como, 28.14
请编写一个程序,使您能够输入湖泊和时间的名称,并将所有这些数据存储在数据结构中。不要将它存储在个别变量中。如果你开始在另一个湖边跑(例如Cedar或Phalen),你的程序仍然可以工作。
您的程序应该能够分析您存储的数据,并为您跑来跑去的每个湖打印最快的时间。因此,对于此数据,您的程序将显示
Calhoun, 43.32
Harriet, 44.43
Como, 32.11
您的程序应使用输入验证。
您应该使用方法来整理程序。
这是我尝试使用HashMap
做的事情,但它似乎无法发挥作用。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//Creating a HaspMap as String for Key and Double for value
HashMap<String, Double> map = new HashMap<String, Double>();
String lakeName;//Variable to store lake name
double time;//Variable to store time
while (true){
System.out.println("What is the lake name: ");
lakeName = input.next();
System.out.println("How many minutes did you run: ");
time = input.nextDouble();
map.put(lakeName, time);//Addding Lake Name to and time to theHaspMap
if (lakeName.equalsIgnoreCase("A") || time ==1)//A condition to exit the loop
{
break;
}
}
System.out.println();
}
}
答案 0 :(得分:1)
使用{"title":"title", "artist":"artist","media":"url media.mp3","color":"#56B0E8" },
可以为每个湖存储一个结果。如果将其更改为HashMap<String, Double>
,您将能够为每个湖泊存储多个结果,并找到给定湖泊的最快结果。
而不是
HashMap<String, List<Double>>
你会有类似的东西:
map.put(lakeName, time);
答案 1 :(得分:1)
您无法使用Map<String, Double>
所需的Map<String, List<Double>>
来存储每个湖泊中的所有时间。
存储时,您必须检索湖泊时间:
List<Double> times = map.get("Harriet");
获得较低的列表值。
Double bestTime = Double.MAX_VALUE;
for (Double time : times) {
if (bestTime > time) bestITime = time;
}