Acessando elementos de um objeto que estão em um array

Olá, pessoal! Estou com um pequeno problema e não sei como resolver…

Tenho o seguinte:

  1. A classe locadora que tem uma coleção de aluguéis:
public class Locadora {
	
	private String nome;
	private String endereco;
	private Gerente g;
	private Collection Video = new ArrayList<Video>();
	private Collection Cliente = new ArrayList<Cliente>();
	private Collection Aluguel = new ArrayList<Aluguel>();
	
....
  1. A classe aluguel que a cada novo aluguel é gerado um novo objeto da classe Aluguel:
public class Aluguel {
	
	private Date dataDevolucao;
	private Collection<Integer> filmes = new ArrayList<Integer>();
	private int numeroAVS;
	private double valorLocacao;
....
  1. A classe Video que descreve os vídeos que serão alugados, cada vídeo tem uma quantidade
public class Video {
	
	private String nome;
	private String ano;
	private String genero;
	private int numeroCatalogo;
	private int categoria;
	private int quantidade;
...

O problema é o seguinte, na classe ControladoraLocacao eu crio um novo objeto aluguel com todos os atributos, inclusive com um array de vídeos que estão sendo locados, e em seguida adiciono à um array da classe Locadora o novo aluguel que foi feito. A classe Locadora tem uma coleção de objetos Aluguel, a classe Aluguel tem uma coleção de objetos Video correspondentes aquela locação.
Só que na classe ControladoraLocacao eu preciso acessar o atributo “quantidade” dos objetos Video que estão dentro de objetos Aluguel, que por sua vez estão dentro de uma coleção em Locadora. xD

Assim:

public class ControladoraLocacao {

	public int verificarVideos(Locadora locadora, int numeroCatalogoFilme){
		int quantidade = 0;
	for(Iterator<Video> it = locadora.getAluguel().iterator(); it.hasNext();){ 
			Video loc = (Video) it.next();
			if(numeroCatalogoFilme == loc.getNumeroCatalogo()){
				System.out.println("Quantidade = "+loc.getQuantidade());
				if(loc.getQuantidade() > 0){
					quantidade = loc.getQuantidade();
					loc.setQuantidade(quantidade-1);
					return 1;
				}else{
					System.out.println("Estoque esgotado!");
					return 0;
				}
			}
		}
		return -1;
	}
}

Só que isso está errado, pois não está acessando a coleção de aluguéis da classe locadora e muito menos os atributos “quantidade” de cada objeto Video que está dentro de um objeto Aluguel.

Já tentei de várias formas fazer esse iterador, mas não consigo… Alguém tem alguma idéia? =)

na linha onde ta for(Iterator<Video> it = locadora.getAluguel().iterator(); it.hasNext();){ o Iterator “it” de Video está recebendo um Iterator de Aluguel que sao coisas diferentes

Axo q seria:

locadora.getVideo().iterator()

Para evitar “cast”

private Collection<Video> Video = new ArrayList<Video>(); private Collection<Cliente> Cliente = new ArrayList<Cliente>(); private Collection<Aluguel> Aluguel = new ArrayList<Aluguel>();

O ideal para esse caso, como acredito que não precisa remover objetos da lista durante sua iteração, é usar o próprio foreach.

[code]for(Aluguel obj : aluguel) {

}[/code]