Implementar uma busca a objetos instanciados

Parece ser bem simples, porém fritei meu crânio nisso…
Não é questão de lógica, creio que seja mais de sintaxe mesmo, enfim…

Seguinte, tenho uma classe chamada “Livro” nessa classe existem atributos como titulo, isbn, ano de lançamento, etc.

Preciso de uma solução para implementar uma busca aos objetos instanciados por essa classe, só que essa busca seria assim:

O usuário informa o ISBN do livro, e o código percorre todos os objetos instanciados procurando um ISBN igual, e quando achar, retornar uma string com todos os outros dados do livro.

Creio que instanciando os objetos em uma array seria mais viável, criei até uma lógica pra fazer a busca, mas não sei onde meter esse código, se é na classe principal, ou na classe Livro, ou numa classe nova, realmente estou perdido, sou novo nessa de POO em Java…

Olhem o código e me ajudem a saber onde enfio este troço, como implemento ele numa classe, seja na principal, seja na própria classe Livro, se tenho que mudar a lógica, não sei…

 for (i = 0 ; i < livro.length; i++){
     // for que percorre todos objetos, instanciados no array "livro".

        if (livro[i].getISBN().equals(entradaDoUsuario)){   
            // Utilizei um IF com EQUALS pra poder fazer a comparação.

            System.out.println( livro[i].dadosDoLivro() );   
                // Print com dados do livro que possui o mesmo nome inserido pelo usuário.  
        }
}

Você está utilizando um array? porque não utiliza uma lista e sobrescreve o equals do objeto Livro?

Depende muito do que você está fazendo, mas creio eu que você não deve adicionar esse método a classe livro, já que nao faz sentido um livro buscar outros livros! Você pode criar uma classe biblioteca e nela conter uma lista com todos os livros, além do método para adicionar novos exemplares a biblioteca, sei lá. Seguindo a orientação do Diego_Emmanuell e usar uma lista em vez de um array!

Entendi, como implementaria essa lista em Java?