java - 我应该将这些数据加载到什么数据结构中以及如何加载?

标签 java

在代码的第一部分中,我从文件中读取数据并将字段放入这样的变量中

Date date = rs.getDate(1);
Integer flightnumber = rs.getInt("FlightNumber");
Integer passengers = rs.getInt("Passengers");

因此,我需要将这些变量放入 ArrayList 中,然后编写一个方法,将两个变量与我创建的列表中的变量进行比较,并返回一个 int 作为乘客。

public int getPassengerNumbersFor(int flightNumber, LocalDate date)

棘手的部分是我无法创建任何新类,并且没有实现任何 getFlightNumber/getDate ,也不允许我编写代码。有人告诉我可以使用 HashMap ,但在这种情况下,我将有一个键和两个值,这是行不通的(passengers 是键,flightnumber date 可能是值)。

如何存储这 3 个值,然后编写我的方法?

最佳答案

如果你被“允许”创建类,我会建议一个不可变的类:

public class Flight {

  private final LocalDate localDate;
  private final int number;
  private final List<Passenger> passengers;

  public Flight(LocalDate localDate, int number, List<Passenger> passengers) {
    this.localDate = localDate;
    this.number = number;
    this.passengers = List.copyOf(passengers);
  }

  public LocalDate getLocalDate() {
    return localDate;
  }

  public int getNumber() {
    return number;
  }

  public List<Passenger> getPassengers() {
    return passengers;
  }

  public int getPassengersNumber() {
    return passengers.size();
  }

  ...
}

注意新的 Date-Time API 的用法.

然后您可以为所有航类选择另一个舱位:

public class Flights {

  private final List<Flight> flights;

  public Flights(List<Flight> flights) {
    this.flights = new ArrayList<>(flights);
  }

  public Flight getFlight(LocalDate localDate, int number) {
    return flights.stream()
            .filter(flight -> flight.getLocalDate().equals(localDate))
            .filter(flight -> flight.getNumber() == number)
            .findAny()
            .orElseThrow(InvalidFlightException::new);
  }

  public void addFlight(Flight flight) {
    flights.add(flight);
  }

  ...
}

关于java - 我应该将这些数据加载到什么数据结构中以及如何加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59648357/

相关文章:

java - Spring MVC 中的 Struts ActionMessages 相当于什么?

java - Android 中如何检查远程文件是否较新?

java - 如何将健康中心连接到 AIX 上的 IBM J9 7

java - 如何在 Eclipse 向导页面中获取 ProgressBar?

java - 使用 jdk11 和 Eclipse 2019-03 (4.11.0) 的基本 javafx11 应用程序的运行时错误

java - 为什么我们需要将 toString 方法与 stringbuilder 一起使用

java - MouseEvent 在 JScrollPane 中丢失

java - jpanel 中图像的对齐

java - Spring 扫描器 bean

java - 是否可以在 Java 8 中扩展枚举?