2. Создайте структуру с именем train, содержащую поля: название пункта назначения, номер поезда, время отправления. Ввести данные в массив из пяти элементов типа train, упорядочить элементы по номерам поездов. Добавить возможность вывода информации о поезде, номер которого введен пользователем. Добавить возможность сортировки массив по пункту назначения, причем поезда с одинаковыми пунктами назначения должны быть упорядочены по времени отправления. НАПИШИТЕ НА java
Ответы
Ответ:
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
class Train {
String destination;
int trainNumber;
String departureTime;
public Train(String destination, int trainNumber, String departureTime) {
this.destination = destination;
this.trainNumber = trainNumber;
this.departureTime = departureTime;
}
public String toString() {
return "Train: " + trainNumber + ", Destination: " + destination + ", Departure Time: " + departureTime;
}
}
public class Main {
public static void main(String[] args) {
Train[] trainArray = new Train[5];
// Ввод данных о поездах
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < trainArray.length; i++) {
System.out.print("Enter destination for train " + (i+1) + ": ");
String destination = scanner.nextLine();
System.out.print("Enter train number: ");
int trainNumber = Integer.parseInt(scanner.nextLine());
System.out.print("Enter departure time: ");
String departureTime = scanner.nextLine();
trainArray[i] = new Train(destination, trainNumber, departureTime);
}
// Сортировка массива по номерам поездов
Arrays.sort(trainArray, Comparator.comparingInt(train -> train.trainNumber));
// Вывод информации о поезде по введенному пользователем номеру
System.out.print("Enter train number to get information: ");
int userTrainNumber = Integer.parseInt(scanner.nextLine());
boolean foundTrain = false;
for (Train train : trainArray) {
if (train.trainNumber == userTrainNumber) {
System.out.println("Information about train " + userTrainNumber + ":");
System.out.println(train);
foundTrain = true;
break;
}
}
if (!foundTrain) {
System.out.println("Train with number " + userTrainNumber + " not found.");
}
// Сортировка массива по пункту назначения и времени отправления
Arrays.sort(trainArray, Comparator.comparing((Train train) -> train.destination)
.thenComparing(train -> train.departureTime));
// Вывод отсортированного массива
System.out.println("Sorted train list:");
for (Train train : trainArray) {
System.out.println(train);
}
}
}