Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Optional;
- enum Sex {
- Male, Female
- }
- class Person {
- private String name;
- private Sex sex;
- public Person(Sex sex, String name) {
- this.sex = sex;
- this.name = name;
- }
- public Sex getSex() {
- return sex;
- }
- public String getName() {
- return name;
- }
- }
- class Table {
- private String name;
- /*
- ArrayList - динамический массив.
- Optional<Person> - либо пустое значение либо значение типа Person.
- */
- private ArrayList<Optional<Person>> places;
- public Table(String name, int numPlaces) {
- this.name = name;
- this.places = new ArrayList<Optional<Person>>(numPlaces);
- for(int i = 0; i < numPlaces; ++i) {
- this.places.add(Optional.empty());
- }
- }
- /**
- @returns true если человек сел за стол и false, если нет.
- **/
- public boolean sitDown(Person person) {
- // Первый проход: проверить есть ли свободные места.
- for(Optional<Person> place : this.places) {
- if(!place.isPresent()) {
- place = Optional.of(person);
- }
- return true;
- }
- // Второй проход: проверить если пол хотябы одного из людей за столом мужской.
- for(Optional<Person> place : this.places) {
- Person sittingPerson = place.get();
- if(sittingPerson.getSex() == Sex.Male) {
- place = Optional.of(person);
- }
- return true;
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement