Этот вопрос касается того, как добавить объекты типа пассажира в Hashmap, который находится внутри Hashmap из 4 станций.У меня есть объекты TrainStation, которые содержат идентификатор номера станции, и объекты Passenger, которые содержат информацию о пассажире, включая станцию, на которую они будут отображаться.
public class TrainStation extends Actor {
int id;
public int getId() {
return id;
}
public TrainStation(int id) {
this.setColor(Color.black);
this.id = id;
}
public static Map<Integer,Passenger> passengersDepart = new HashMap<>();
public class Passenger {
int id;
int appearTimeStep;
int originStationId;
int destinationStationsId;
int tripStartTimeStep;
int tripEndTimeStep;
int traveTime;
public Passenger(int id, int appearTimeStep, int originStationId, int destinationStationId) {
this.id = id;
this.appearTimeStep = appearTimeStep;
this.originStationId = originStationId;
this.destinationStationsId = destinationStationId;
}
4 Станции добавляются в основную и сохраняются в отдельной статической карте станций (не показана) в файле класса набора данных.Я читаю информацию о пассажирах из CSV, сортирую их по полю станции и хочу добавить их на карту пассажиров соответствующей станции.
public static void readData(String path) throws IOException {
BufferedReader pBufferedReader = new BufferedReader(new FileReader(path));
String newline;
//read header, output index number of each item
String[] header = pBufferedReader.readLine().split(",");
int idIndex = findPositionInArray("id", header);
int appearTimeStepIndex = findPositionInArray("appearTimeStep", header);
int originStationId = findPositionInArray("originStationId", header);
int destinationStationsId = findPositionInArray("destinationStationId", header);
//read body lines
while ((newline = pBufferedReader.readLine()) != null) {
String[] lineElements = newline.split(",");
int id = Integer.parseInt(lineElements[idIndex]);
int tStep = Integer.parseInt(lineElements[appearTimeStepIndex]);
int oId = Integer.parseInt(lineElements[originStationId]);
int dId = Integer.parseInt(lineElements[destinationStationsId]);
Passenger passenger = new Passenger(id, tStep, oId, dId);
//I NEED THIS TO ACCESS EACH INDIVIDUAL STATION MAP
if (passenger.destinationStationsId == 1) {
DataSet.tsMap.put(passenger.getId(), passenger);
}
else if (passenger.destinationStationsId == 2){
TrainStation.passengersDepart.put(passenger.getId(), passenger);
}
else if (passenger.destinationStationsId == 3) {
TrainStation.passengersDepart.put(passenger.getId(), passenger);
}
else {
TrainStation.passengersDepart.put(passenger.getId(), passenger);
}
}
pBufferedReader.close();
}
Проблема, с которой я сталкиваюсь, состоит в том, чтобы поместить объект пассажира, созданный из CSV, не в хэш-карту железнодорожных станций (где он все равно не будет использоваться, поскольку это пассажир типа, а не тип станции).), но в hashmap списка людей, который находится внутри hashmap железнодорожного вокзала.