java - HashMap 覆盖值

标签 java hashmap

嘿,我正在尝试为飞机创建一个 hashMap 存储。但是当我添加时,它只会打印出一个航类。谁能帮我这个。 这是我的代码:

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 aerLingus = 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.addFlight("",p1);
        planeStore.addFlight("",p2);
        planeStore.addFlight("",p3);
        planeStore.print();

        aerLingus.add(planeStore);
        aerLingus.add(planeStore);
        aerLingus.add(planeStore);

        aerLingus.printPlane();
    }

}

import java.util.TreeMap;


public class PlaneStore 
{
    private String airlineName;
    private TreeMap<String,Flight> planeMap;


    public PlaneStore(String airlineName) 
    {
        this.airlineName = "";
        planeMap = new TreeMap<String,Flight>();
    }


    public String getAirlineName() {
        return airlineName;
    }


    public TreeMap<String, Flight> getFlightList() {
        return planeMap;
    }
    public void addFlight(String airline,Flight flight)
    {
        planeMap.put(airline, flight);
    }

    // ---------------------------------------------------------------------------------------
    // Name: Print.
    // ---------------------------------------------------------------------------------------
    public void print()
    {
        System.out.println("\n********Student's in the Company.********");
        for (Flight flight : planeMap.values()) {
            // System.out.println(employee); to print the toString of Employee
            // class
            // or:
            System.out.println("Airline:\t" + flight.getAirline());
            System.out.println("Flight Number:\t" + flight.getFlightNumber());
            System.out.println("Fuel Remaining:\t" + flight.getFuelRemaining());
        }

    }


}
public class Flight 
{
    private String airline;
    private String flightNumber;
    private double fuelRemaining;
    private double overdue;
    private int passengerNumber;
    private AIRPLANETYPE planeType;

    public enum AIRPLANETYPE
    {
        AIRBUS("1"), CORPORATE("2"), PRIVATE("3");

        private String planeName;

        private AIRPLANETYPE(String planeName)
        {
            this.planeName = planeName;
        }
    }


    public Flight(String airline, String flightNumber, double fuelRemaining,
            double overdue, int passengerNumber, AIRPLANETYPE planeType) 
    {
        super();
        this.airline = airline;
        this.flightNumber = flightNumber;
        this.fuelRemaining = fuelRemaining;
        this.overdue = overdue;
        this.passengerNumber = passengerNumber;
        this.planeType = planeType;
    }

    public String getAirline() {
        return airline;
    }

    public void setAirline(String airline) {
        this.airline = airline;
    }

    public String getFlightNumber() {
        return flightNumber;
    }

    public void setFlightNumber(String flightNumber) {
        this.flightNumber = flightNumber;
    }

    public double getFuelRemaining() {
        return fuelRemaining;
    }

    public void setFuelRemaining(double fuelRemaining) {
        this.fuelRemaining = fuelRemaining;
    }

    public double getOverdue() {
        return overdue;
    }

    public void setOverdue(double overdue) {
        this.overdue = overdue;
    }

    public int getPassengerNumber() {
        return passengerNumber;
    }

    public void setPassengerNumber(int passengerNumber) {
        this.passengerNumber = passengerNumber;
    }

    public AIRPLANETYPE getPlaneType() {
        return planeType;
    }

    public void setPlaneType(AIRPLANETYPE planeType) {
        this.planeType = planeType;
    }


    public String toString() 
    {
        return "Flight [airline=" + airline + ", flightNumber=" + flightNumber
                + ", fuelRemaining=" + fuelRemaining + ", overdue=" + overdue
                + ", passengerNumber=" + passengerNumber + ", planeType="
                + planeType + "]";
    }




}

最佳答案

HashMap 是一种数据结构,您可以在其中存储键值对。 key 必须是唯一的。否则,您将覆盖具有相同键的值。

使用这种数据结构,您可以非常快速地添加和查找值,因为添加和查找值的复杂性是不变的。但缺点是一次只能添加一个key。

关于java - HashMap 覆盖值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13807952/

相关文章:

java - 检查 hashmap 是否包含特定值以外的值

java - Java HashMap.clear() 和 remove() 内存有效吗?

java - 'final' 字段修饰符在不可变类中是多余的吗?

java - 无法编译的源代码 - 不是 arrays.main(arrays.java :4) Java Result: 1 处的语句

java - 如何创建可扩展列表?

java - appView.addJavascriptInterface() 不适用于 API 17

Java:散列一个巨大列表中的每个可能的对

c++ - 删除包含结构的 vector 的 vector

java - 如何找到不同的流派然后添加到数组链表中

java - 如何在 html 生成的 itext pdf 中注册印度卢比符号