当前位置: 首页 > 知识库问答 >
问题:

如何打印出hashmap商店

章承基
2023-03-14
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进入主端的地方。但我现在希望航空公司和航班并行打印,所以我把航空公司商店和我试图打印出PlaneStore以及航空公司,但我得到的只是一个内存地址,有人能帮我吗?

共有3个答案

田曜瑞
2023-03-14

因为你似乎是编程新手,我要给你答案:

public class PlaneStore {

    private String name;
    ...

    public String toString() {
        return name;
    }
}
东郭远航
2023-03-14

您可以通过以下方式实现:

System.out.println(map.toString());

这与

System.out.println(map);

然后,为了避免您提到的“内存地址”:

public String toString() {
    return this.storeName; // or similar, 
}

这之所以有效,是因为Map可以通过调用每个键和值的toString()方法来打印其内容。

如果这个输出不够好,您必须自己迭代:使用map.entrySet()并迭代它。

壤驷瑾瑜
2023-03-14

如果您得到类似于<代码>MyClass@abcdef,则需要在MyClass中重写字符串,如下所示:

public class MyClass {

    ...

    @Override
    public String toString() {
        return "My class"; // Make a string here that you want to display
    }
}

因此,例如,如果PlaneStore对字段具有int planeCount和字符串名称,则可以执行如下操作:

@Override
public String toString() {
    return "Plane store | Name: " + name + ", planes: " + planeCount;
}
 类似资料:
  • 问题内容: 我有一个: 现在,我想遍历所有值并打印它们。 我这样写: 它似乎不起作用。 问题是什么? 编辑:另一个问题:这个集合是从零开始的吗?我的意思是,如果它具有1个键并且值将为0或1? 问题答案: keySet()仅从哈希图中返回一组键,您应该迭代此键集并使用这些键从哈希图中获取值。 在您的示例中,哈希映射键的类型为,但是您在通用的for循环中指定了密钥,因此无法对其进行编译。您应该将其更改

  • 问题内容: 我正在尝试修复这段代码,该代码是从具有车牌号和车主列表(该格式)的哈希图进行打印的。我试图通过printOwners()仅打印出所有者;但是我不能不打印重复的东西。 我已经玩了一段时间,但似乎无法跳过重复项。 这是我的代码: 问题答案: 要删除重复项,请使用: 或者使用Java 8 和方法:

  • 问题是如何使用方法在HashMap中pritn值=1的图书?在代码中,ive删除了数组中的书籍,这样代码就可以更短。

  • 公共静态地图>hillsByCounty(列表山){ }我的hashmap的值为(列表中的山名、国家名、高度、经度和纬度)。但是,我只需要打印3个县,每个县的前3个山及其高度,我该怎么做?在这里输入图像描述

  • 问题内容: 我需要通过jasperreport打印整个地图 例: 应该选择什么数据源? 包含哪些报告来源? PS:我不想直接获得像$ P {key11}这样的值 问题答案: 我会尝试这样的 在碧玉报告中,您的字段将是 注意:我如何使用Bean 和创建数据源 如果您只想实现a 并使用,则将不会对值进行排序。

  • 应该选择什么数据源? containts报告来源应该是什么? PS:我不想直接获得像$P{key11}这样的值