如何将返回对象的结果调用到哈希/树映射中JAVA
我从未使用过HashMap,也不太确定它是如何工作的。我有一个MainMenu类,用户从中选择一个数字,将它们指向一个单独的类/方法,该类/方法请求返回到对象的信息 我需要用户输入一个代码,该代码将标识我创建的行(比如用户在一个请求中输入QA,在另一个请求中输入400…)我将要求用户输入QA400,他们将看到他们之前输入的整行信息(经过一点格式化) 我只是不知道如何获取这些变量并将它们从HashMap中打印出来(或者我应该使用TreeMap?我读过它的更有条理的内容?) 这是我的主菜单的一部分,在开关柜里面如何将返回对象的结果调用到哈希/树映射中JAVA,java,Java,我从未使用过HashMap,也不太确定它是如何工作的。我有一个MainMenu类,用户从中选择一个数字,将它们指向一个单独的类/方法,该类/方法请求返回到对象的信息 我需要用户输入一个代码,该代码将标识我创建的行(比如用户在一个请求中输入QA,在另一个请求中输入400…)我将要求用户输入QA400,他们将看到他们之前输入的整行信息(经过一点格式化) 我只是不知道如何获取这些变量并将它们从HashMap中打印出来(或者我应该使用TreeMap?我读过它的更有条理的内容?) 这是我的主菜单的一部分,
case 3:
A8AirlineAircraftData.AddAirline(sc);
continue;
case 4:
A8FlightData.AddFlight(sc);
continue;
用户按3,然后重定向到:
public class A8AirlineAircraftData {
private String airName; //these are all showing a warning saying 'Field ____ can be final'
private String airCode;
private String airCraft;
private int firstClass;
private int busiClass;
private int econClass;
public A8AirlineAircraftData(String airName, String airCode, String airCraft, int firstClass, int busiClass, int econClass) {
this.airName = airName;
this.airCode = airCode;
this.airCraft = airCraft;
this.firstClass = firstClass;
this.busiClass = busiClass;
this.econClass = econClass;
}
public static A8AirlineAircraftData AddAirline(Scanner sc) {
sc.nextLine();
System.out.println("Please enter the Airline name:");
String airName = sc.nextLine();
System.out.println("Please enter the Airline code:");
String airCode = sc.nextLine();
System.out.println("Please enter the Delta Aircraft:");
String airCraft = sc.nextLine();
System.out.println("Please enter the first class seat capacity:");
int firstClass = sc.nextInt();
System.out.println("Please enter the business class seat capacity:");
int busiClass = sc.nextInt();
System.out.println("Please enter the economy class seat capacity:");
int econClass = sc.nextInt();
System.out.println("Airline name: " + airName);
System.out.println("Airline code: " + airCode);
System.out.println("Delta Aircraft: " + airCraft);
//Splitting the first word from the rest of the string
String arr[] = airCraft.split(" ", 2);
String firstWord = arr[0];
System.out.println(firstWord + " first class seat capacity: " + firstClass);
System.out.println(firstWord + " business class seat capacity: " + busiClass);
System.out.println(firstWord + " economy class seat capacity: " + econClass);
//Airline object
A8AirlineAircraftData airline = new A8AirlineAircraftData(airName, airCode, airCraft, firstClass, busiClass, econClass);
System.out.println(airName + " successfully added. Press Enter to continue.");
sc.nextLine();
sc.nextLine();//Press Enter to continue
return airline;
我希望最终结果看起来像是从主菜单或任何地方简单地重述“airline”对象。。。我只是不知道从哪里开始创造它
谢谢您的帮助。您必须在主菜单中捕获返回的对象,即您案例中的airline对象
case 3:
A8AirlineAircraftData airline = A8AirlineAircraftData.AddAirline(sc);
/*do something with the airline*/
continue;
Hashmap使用hashfunction将一个对象映射到另一个对象。Hashmap使用map.get(key)将对象键映射返回到。我不太明白你的问题,但希望这能对你有所帮助。如果你想简单地从主菜单中重述“airline”对象,那么你应该创建一个
airline
对象。不是映射
(哈希
,树
,或其他)。@ElliottFrisch我该如何开始创建它?很抱歉,我对Java非常缺乏经验。@SamK9键的一端是否可以由用户键入以与以前输入的数据相匹配?new A8AirlineAircraftData(airName、airCode、airCraft、firstClass、busiClass、econClass)代码>看起来很合理。在那里添加一个toString
(到类A8AirlineAircraftData
)。并将其重命名为Airline
。我尝试使用该方法运行类似System.out.println(Airline)的系统,结果是:a8airlineflightschedule。A8AirlineAircraftData@15e6e48bYou必须在A8AirlineAircraftData中添加toString()方法。public String toString(){return airName+airCode;}
您能给我举个例子说明我可以如何做到这一点吗?我对此非常陌生。将这段代码公共字符串添加到字符串(){return“airname是:“+airname+”,aircode是:“+aircode;}
添加到8airlineAircraftData类。然后使用System.out.println(airline.toString())代码>