for (Hierarchyable _objeto : lista) {
if (lista.contains(_objeto.iGetPai())) { // Quando o pai do elemento est� na lista, executa o c�digo abaixo.
if (_objeto.iGetPai() == null) { //Quando a estrutura n�o possui pai ela � raiz deve ser inserida na lista
NoArvoreEstrutura noArvore = new NoArvoreEstrutura();
noArvore.setElemento(_objeto);
noArvore.setListaFilhos(new ArrayList<NoArvoreEstrutura>());
listaMontada.add(noArvore);
} else {
filhos.add(_objeto);
}
} else {//Quando o pai do elemento n�o est� na lista, n�o precisa procurar basta criar o n� e inserir na listaMontada. Quando o pai n�o estiver na lista � porque n�o foi selecionado pelo usu�rio.
NoArvoreEstrutura noArvore = new NoArvoreEstrutura();
noArvore.setElemento(_objeto);
noArvore.setListaFilhos(new ArrayList<NoArvoreEstrutura>());
listaMontada.add(noArvore);
}
}
if (!filhos.isEmpty()){ //lista de Filhos n�o � vazia