import java.util.Scanner;
public class MainApp
{
private Scanner keyboard = new Scanner(System.in);
public static void main(String[] args)
{
new MainApp().start();
}
public void start()
{
Airline airline1 = new Airline("AerLingus");
PlaneStore planeStore = new PlaneStore("Aer Lingus");
Flight p1 = new Flight("Aer Lingus","A01", 150.5, 10.5, 500, Flight.AIRPLANETYPE.AIRBUS);
Flight p2 = new Flight("Aer Lingus","B01", 50.3, 1.5, 91, Flight.AIRPLANETYPE.CORPORATE);
Flight p3 = new Flight("Aer Lingus","C01", 12.2, -3.1, 56, Flight.AIRPLANETYPE.AIRBUS);
Flight p4 = new Flight("Ryan Air","D01", 10.5, 1.5, 430, Flight.AIRPLANETYPE.PRIVATE);
Flight p5 = new Flight("Ryan Air","E01", 0.3, 2.1, 101, Flight.AIRPLANETYPE.CORPORATE);
Flight p6 = new Flight("Ryan Air","F01", 2.2, -3, 291, Flight.AIRPLANETYPE.AIRBUS);
planeStore.add(p1);
planeStore.add(p2);
planeStore.add(p3);
planeStore.print();
airline1.add(planeStore);
airline1.add(planeStore);
airline1.add(planeStore);
airline1.printPlane();
}
}
import java.util.HashMap;
public class Airline
{
private String airlineName;
private HashMap<String, PlaneStore> map;
public Airline(String airlineName)
{
this.airlineName = "";
map = new HashMap<String, PlaneStore>();
}
public void add(PlaneStore plane)
{
map.put(airlineName, plane);
}
public void remove(String flight)
{
map.remove(flight);
}
public void printPlane()
{
System.out.println("\n********Flight List********");
for (PlaneStore plane: map.values()) {
//System.out.println(plane);
// class
// or:
System.out.println(airlineName);
System.out.println(plane.toString());
}
}
}
嘿我想打印出飞机商店。飞机商店包含字符串和航班的散列图。这就是flight.add / print进入主应用程序的地方。但我现在想要航空公司和航班打印平行,所以我把航空公司商店和我试图打印出飞机商店和航空公司,但所有我得到的是一个记忆地址可以任何人帮助我。
答案 0 :(得分:1)
如果您收到类似MyClass@abcdef
的内容,则需要覆盖toString
中的MyClass
,如下所示:
public class MyClass {
...
@Override
public String toString() {
return "My class"; // Make a string here that you want to display
}
}
例如,如果PlaneStore
对于字段有int planeCount
和String name
,那么您可以执行以下操作:
@Override
public String toString() {
return "Plane store | Name: " + name + ", planes: " + planeCount;
}
答案 1 :(得分:0)
你可以通过以下方式做到:
System.out.println(map.toString());
与
相同System.out.println(map);
然后,为了避免你提到的“记忆地址”:
添加到PlainStore的方法
public String toString() {
return this.storeName; // or similar,
}
这是有效的,因为Map可以通过调用每个键和值的toString()
方法打印出其内容。
如果此输出不够好,您必须自己迭代:
使用map.entrySet()
并迭代它。
答案 2 :(得分:0)
尝试使用Apache ToStringBuilder类。但是当然toString()也会有所帮助。有关ToStringBuilder
的更多信息答案 3 :(得分:0)
因为你似乎是编程的新手,我会交给你他回答:
public class PlaneStore {
private String name;
...
public String toString() {
return name;
}
}