Как получить элементы из ArrayList на основе нескольких условий? - PullRequest
0 голосов
/ 22 февраля 2019

Я создаю интерфейс, который управляет бронированием билетов в Кино в разные недели / театры.

У меня есть класс фильма:

public class Film {

  private String title;
  private Double price;
  private String ageRestriction;
  private double rating;
  private String genre;
  private String location;
  private String screenDay;
}

Класс FilmList, который создает и хранит все фильмы в ArrayList:

public class FilmList {

  private ArrayList <Film> filmArrayList;

  public FilmList (){
    this.filmArrayList = new ArrayList<>();
  }

  public void addFilm(Film films){
    this.filmArrayList.add(films);
  }

И это графическая единицаинтерфейс.Я пытаюсь поймать в ArrayList только один элемент на основе двух условий: «Неделя» и «Театр», выбранных пользователем, а также добавить способ проверки наличия только одного элемента всписок из выбранных параметров.Это важно, потому что каждый экземпляр фильма будет вызываться и «устанавливаться» на метке файла FXML (и потому, что я собираюсь реализовать интерфейс для добавления фильмов в ArrayList).

Спасибо всем.

enter image description here

enter image description here

1 Ответ

0 голосов
/ 22 февраля 2019

ОК, так что в вашем примере это будет примерно так:

   //try to find any movie that suits two predicates, 1st - that it's price is greater than 30( this is random number, you can put a value from your textfield here ) and 2nd - that it's title contains Spiderman ( again, put a value from your textfield title search here for your need )
   Optional<Film> movie = listOfMovies.stream().filter(i -> i.getPrice() > 30 && i.getTitle.contains("Spiderman")).findAny();
  // if any movie has been found to suits provided criterias
   if(movie.isPresent())
       {
               //print it on screen, note method get()
               //again this is just for example here, in your code,
               // you can do with this result whatever you like
               // for example show all data about that movie on screen    
               System.out.println("---->" +movie.get());
       }
      else
       {
              // if not found do nothing
              System.out.println("Nothing found...");
       }

Подробнее о Optional можно найти здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...