Aggiunti arraylist

This commit is contained in:
Mr SL1D3R 2025-03-20 12:32:32 +01:00
parent f7f0a26361
commit c3a8747cda
1 changed files with 30 additions and 24 deletions

View File

@ -1,16 +1,21 @@
import java.util.ArrayList;
/**
* Classe Cinema che va a rappresentare un cinema
*
* @autor Ciausu Angelo
* @version 2.0.0
*/
public class Cinema { public class Cinema {
private String nome; private String nome;
private int filmMax; private int filmMax;
private Film[] film; private ArrayList<Film> film;
public Cinema(String nome, int filmMax) { public Cinema(String nome, int filmMax) {
this.nome = nome; this.nome = nome;
this.filmMax = filmMax; this.filmMax = filmMax;
this.film = new Film[filmMax]; this.film = new ArrayList<>(filmMax);
for (int i = 0; i < film.length; i++) {
film[i] = null;
}
} }
/** /**
@ -22,15 +27,17 @@ public class Cinema {
* @param f il film da aggiungere * @param f il film da aggiungere
*/ */
public void aggiungiFilm(Film f) { public void aggiungiFilm(Film f) {
for (int i = 0; i < film.length; i++) { for (Film film : this.film) {
if (film[i] == null) { if (film.equals(f)) {
film[i] = f;
break;
} else if (film[i].equals(f)) {
System.out.println("Film già presente"); System.out.println("Film già presente");
break; return;
} }
} }
if (this.film.size() < filmMax) {
this.film.add(f);
} else {
System.out.println("Capacità massima raggiunta");
}
} }
/** /**
@ -47,7 +54,7 @@ public class Cinema {
*/ */
public boolean prenotaPosti(int Posti, Film film) { public boolean prenotaPosti(int Posti, Film film) {
for (Film f : this.film) { for (Film f : this.film) {
if (f != null && f.equals(film)) { if (f.equals(film)) {
return f.vendiBiglietti(Posti); return f.vendiBiglietti(Posti);
} }
} }
@ -63,9 +70,12 @@ public class Cinema {
* @return una copia del film con la durata maggiore * @return una copia del film con la durata maggiore
*/ */
public Film filmPiùLungo() { public Film filmPiùLungo() {
Film filmPiuLungo = this.film[0]; if (this.film.isEmpty()) {
return null;
}
Film filmPiuLungo = this.film.get(0);
for (Film f : this.film) { for (Film f : this.film) {
if (f != null && f.getDurata() > filmPiuLungo.getDurata()) { if (f.getDurata() > filmPiuLungo.getDurata()) {
filmPiuLungo = f; filmPiuLungo = f;
} }
} }
@ -82,7 +92,7 @@ public class Cinema {
*/ */
public void percentualePostiOccupati(Film film) { public void percentualePostiOccupati(Film film) {
for (Film f : this.film) { for (Film f : this.film) {
if (f != null && f.equals(film)) { if (f.equals(film)) {
int postiTotali = f.getPostiTotali(); int postiTotali = f.getPostiTotali();
int postiDisponibili = f.getPostiDisponibili(); int postiDisponibili = f.getPostiDisponibili();
int postiOccupati = postiTotali - postiDisponibili; int postiOccupati = postiTotali - postiDisponibili;
@ -95,20 +105,16 @@ public class Cinema {
} }
public void rimuoviFilm(Film film) { public void rimuoviFilm(Film film) {
for (int i = 0; i < this.film.length; i++) { if (this.film.remove(film)) {
if (this.film[i] != null && this.film[i].equals(film)) { System.out.println("Film rimosso");
this.film[i] = null; } else {
return; System.out.println("Film non trovato");
}
} }
System.out.println("Film non trovato");
} }
public void stampaProgrammazione() { public void stampaProgrammazione() {
for (Film f : this.film) { for (Film f : this.film) {
if (f != null) { System.out.println(f.toString());
System.out.println("Titolo: " + f.getTitolo() + " Durata: " + f.getDurata() + " Sala: " + f.getSala() + " Posti: " + f.getPostiDisponibili());
}
} }
} }
} }