fork(1) download
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.Comparator;
  4.  
  5.  
  6. class PassengerWagon {
  7. private int capacity; // Вместимость вагона
  8. private String type; // Тип вагона
  9.  
  10. public PassengerWagon(int capacity, String type) {
  11. this.capacity = capacity;
  12. this.type = type;
  13. }
  14.  
  15. public int getCapacity() {
  16. return capacity;
  17. }
  18.  
  19. public String getType() {
  20. return type;
  21. }
  22. }
  23.  
  24. class Train {
  25. private ArrayList<PassengerWagon> wagons;
  26.  
  27. public Train() {
  28. wagons = new ArrayList<>();
  29. }
  30.  
  31. public void addWagon(PassengerWagon wagon) {
  32. wagons.add(wagon);
  33. }
  34.  
  35. public int getTotalPassengers() {
  36. int totalPassengers = 0;
  37. for (PassengerWagon wagon : wagons) {
  38. totalPassengers += wagon.getCapacity();
  39. }
  40. return totalPassengers;
  41. }
  42.  
  43. public ArrayList<PassengerWagon> sortByComfortLevel() {
  44. ArrayList<PassengerWagon> sortedWagons = new ArrayList<>(wagons);
  45. Collections.sort(sortedWagons, Comparator.comparing(PassengerWagon::getType));
  46. return sortedWagons;
  47. }
  48.  
  49. public ArrayList<PassengerWagon> findWagonsByCapacity(int minCapacity, int maxCapacity) {
  50. ArrayList<PassengerWagon> selectedWagons = new ArrayList<>();
  51. for (PassengerWagon wagon : wagons) {
  52. if (wagon.getCapacity() >= minCapacity && wagon.getCapacity() <= maxCapacity) {
  53. selectedWagons.add(wagon);
  54. }
  55. }
  56. return selectedWagons;
  57. }
  58. }
  59.  
  60. public class Main {
  61. public static void main(String[] args) {
  62. Train train = new Train();
  63.  
  64. // Добавление вагона в поезд
  65. train.addWagon(new PassengerWagon(36, "Купейный"));
  66. train.addWagon(new PassengerWagon(80, "Сидячий"));
  67. train.addWagon(new PassengerWagon(24, "Ресторанно-барный"));
  68.  
  69.  
  70. System.out.println("Общее число пассажиров в поезде: " + train.getTotalPassengers());
  71.  
  72. // Сортировка вагонов по уровню комфортности
  73.  
  74. ArrayList<PassengerWagon> sortedWagons = train.sortByComfortLevel();
  75. System.out.println("\nВагоны поезда, отсортированные по уровню комфортности:");
  76. for (PassengerWagon wagon : sortedWagons) {
  77. System.out.println(wagon.getType() + " вагон: " + wagon.getCapacity() + " мест");
  78. }
  79.  
  80. // Нужно нати вагоны с заданным диапазоном числа пассажиров
  81. int minCapacity = 30;
  82. int maxCapacity = 50;
  83. ArrayList<PassengerWagon> selectedWagons = train.findWagonsByCapacity(minCapacity, maxCapacity);
  84. System.out.println("\nВагоны поезда с числом пассажиров от " + minCapacity + " до " + maxCapacity + ":");
  85. for (PassengerWagon wagon : selectedWagons) {
  86. System.out.println(wagon.getType() + " вагон: " + wagon.getCapacity() + " мест");
  87. }
  88. }
  89. }
Success #stdin #stdout 0.22s 58088KB
stdin
Standard input is empty
stdout
Общее число пассажиров в поезде: 140

Вагоны поезда, отсортированные по уровню комфортности:
Купейный вагон: 36 мест
Ресторанно-барный вагон: 24 мест
Сидячий вагон: 80 мест

Вагоны поезда с числом пассажиров от 30 до 50:
Купейный вагон: 36 мест