Juntar pais e filhor dinamicamente

Boa tarde, tenho um problema que não estou conseguindo resolver.
Preciso montar uma estrutura de pais e filhos do mesmo tipo de objeto.
Ex.

public class Objeto{
        private Integer cdEmpresa;
	private Integer cdVisao;
	private Integer cdContaVisao;
	private String cdIdentificador;
	private String nmConta;
	private String tpContaVisao;
	private String tpOperacaoTotal;
	private Integer nuOrdem;
	private Integer cdContaVisaoPai;
	private Integer nuNivel;

onde o campo que eh colocado pai eh cdContaVisaoPai, se for nulo significa que ele é o pai de todos, o problema que pode haver varios niveis. Como montar isso?

Agradeço qq ajuda.

Crie um atributo do mesmo tipo da classe para o pai:

public class Objeto { private Objeto pai; }

Ou uma lista para os filhos:

public class Objeto { private List<Objeto> filhos = new ArrayList<Objeto>(); }

OU mesmo ambos. Eu geralmente fico com a segunda opção.