Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package spaceCrafts;
- import java.util.ArrayList;
- import java.util.Comparator;
- import java.util.List;
- import java.util.stream.Collectors;
- public class LaunchPad {
- private final List<Spacecraft> spacecrafts = new ArrayList<>();
- private final String name;
- private final int capacity;
- public LaunchPad(String name, int capacity) {
- this.name = name;
- this.capacity = capacity;
- }
- public void addSpacecraft(Spacecraft spacecraft) {
- if (spacecrafts.size() < capacity) {
- if (spacecrafts.stream().anyMatch(s -> s.getName().equals(spacecraft.getName()))) {
- throw new RuntimeException("This spacecraft already exists!");
- }
- spacecrafts.add(spacecraft);
- } else {
- System.out.println("This launchpad is at full capacity!");
- }
- }
- public Spacecraft getSpacecraft(String name) {
- return spacecrafts.stream()
- .filter(s -> s.getName().equals(name))
- .findFirst()
- .orElse(null);
- }
- public boolean removeSpacecraft(String name) {
- Spacecraft spacecraft = getSpacecraft(name);
- return spacecrafts.remove(spacecraft);
- }
- public int getCount() {
- return spacecrafts.size();
- }
- public String getHeaviestSpacecraft() {
- Spacecraft heaviestSpacecraft = spacecrafts.stream()
- .max(Comparator.comparingInt(Spacecraft::getWeight))
- .orElse(null);
- if (heaviestSpacecraft != null) {
- return String.format("%s - %dkg.", heaviestSpacecraft.getName(), heaviestSpacecraft.getWeight());
- } else {
- return "none";
- }
- }
- public List<Spacecraft> getSpacecraftsByMissionType(String missionType) {
- List<Spacecraft> filteredSpacecrafts = spacecrafts.stream()
- .filter(s -> s.getMissionType().equals(missionType))
- .collect(Collectors.toList());
- if (filteredSpacecrafts.isEmpty()) {
- System.out.println("There are no spacecrafts to respond to this criteria.");
- }
- return filteredSpacecrafts;
- }
- public String getStatistics() {
- StringBuilder sb = new StringBuilder();
- sb.append("Spacecrafts launched from ").append(name).append(":\n");
- if (spacecrafts.isEmpty()) {
- sb.append("none");
- } else {
- for (int i = 0; i < spacecrafts.size(); i++) {
- sb.append(i + 1).append(". ").append(spacecrafts.get(i).getName()).append("\n");
- }
- }
- return sb.toString().trim();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement