Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package spaceStationRecruitment;
- import java.util.LinkedHashMap;
- import java.util.Map;
- import java.util.stream.Collectors;
- public class SpaceStation {
- private String name;
- private int capacity;
- private Map<String, Astronaut> data;
- public SpaceStation(String name, int capacity) {
- this.name = name;
- this.capacity = capacity;
- this.data = new LinkedHashMap<>();
- }
- public String getName() {
- return name;
- }
- public int getCapacity() {
- return capacity;
- }
- public int getCount() {
- return data.size();
- }
- public void add(Astronaut astronaut) {
- if(this.data.size()<this.getCapacity()){
- String name = astronaut.getName();
- data.put(name,astronaut);
- }
- }
- public boolean remove(String astronaut_name) {
- if (!data.containsKey(astronaut_name)) {
- return false;
- } else{
- data.remove(astronaut_name);
- return true;
- }
- }
- public Astronaut getOldestAstronaut() {
- return data.values().stream().sorted((f,s)->s.getAge()-f.getAge())
- .collect(Collectors.toList())
- .get(0);
- }
- public Astronaut getAstronaut(String name) {
- return data.values().stream().filter(f->f.getName().equals(name))
- .collect(Collectors.toList())
- .get(0);
- }
- public String report() {
- return String.format("Astronauts working at Space Station " + this.getName()+":%n"+
- this.data.values()
- .stream()
- .map(Astronaut::toString)
- .collect(Collectors.joining("%n")));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement