Advertisement
Ligh7_of_H3av3n

03. Spacecrafts - Launchpad

Jun 21st, 2024
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.64 KB | None | 0 0
  1. package spaceCrafts;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Comparator;
  5. import java.util.List;
  6. import java.util.stream.Collectors;
  7.  
  8. public class LaunchPad {
  9.     private final List<Spacecraft> spacecrafts = new ArrayList<>();
  10.     private final String name;
  11.     private final int capacity;
  12.  
  13.     public LaunchPad(String name, int capacity) {
  14.         this.name = name;
  15.         this.capacity = capacity;
  16.     }
  17.  
  18.     public void addSpacecraft(Spacecraft spacecraft) {
  19.         if (spacecrafts.size() < capacity) {
  20.             if (spacecrafts.stream().anyMatch(s -> s.getName().equals(spacecraft.getName()))) {
  21.                 throw new RuntimeException("This spacecraft already exists!");
  22.             }
  23.             spacecrafts.add(spacecraft);
  24.         } else {
  25.             System.out.println("This launchpad is at full capacity!");
  26.         }
  27.     }
  28.  
  29.     public Spacecraft getSpacecraft(String name) {
  30.         return spacecrafts.stream()
  31.                 .filter(s -> s.getName().equals(name))
  32.                 .findFirst()
  33.                 .orElse(null);
  34.     }
  35.  
  36.     public boolean removeSpacecraft(String name) {
  37.         Spacecraft spacecraft = getSpacecraft(name);
  38.         return spacecrafts.remove(spacecraft);
  39.     }
  40.  
  41.     public int getCount() {
  42.         return spacecrafts.size();
  43.     }
  44.  
  45.     public String getHeaviestSpacecraft() {
  46.         Spacecraft heaviestSpacecraft = spacecrafts.stream()
  47.                 .max(Comparator.comparingInt(Spacecraft::getWeight))
  48.                 .orElse(null);
  49.  
  50.         if (heaviestSpacecraft != null) {
  51.             return String.format("%s - %dkg.", heaviestSpacecraft.getName(), heaviestSpacecraft.getWeight());
  52.         } else {
  53.             return "none";
  54.         }
  55.     }
  56.  
  57.     public List<Spacecraft> getSpacecraftsByMissionType(String missionType) {
  58.         List<Spacecraft> filteredSpacecrafts = spacecrafts.stream()
  59.                 .filter(s -> s.getMissionType().equals(missionType))
  60.                 .collect(Collectors.toList());
  61.  
  62.         if (filteredSpacecrafts.isEmpty()) {
  63.             System.out.println("There are no spacecrafts to respond to this criteria.");
  64.         }
  65.  
  66.         return filteredSpacecrafts;
  67.     }
  68.  
  69.     public String getStatistics() {
  70.         StringBuilder sb = new StringBuilder();
  71.         sb.append("Spacecrafts launched from ").append(name).append(":\n");
  72.         if (spacecrafts.isEmpty()) {
  73.             sb.append("none");
  74.         } else {
  75.             for (int i = 0; i < spacecrafts.size(); i++) {
  76.                 sb.append(i + 1).append(". ").append(spacecrafts.get(i).getName()).append("\n");
  77.             }
  78.         }
  79.         return sb.toString().trim();
  80.     }
  81. }
  82.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement