[RESOLVIDO]'copiar' uma lista com listas, mantendo a hierarquia dos filhos

pessoal, to precisando de uma ajuda…
no meu projeto aqui eu terei uma lista ‘recursiva’, o objeto pode ter vários objetos da mesma entidade nele
e eu preciso fazer uma cópia dessa lista, mas passando pra uma outra entidade onde muda só um campo
seria um método recursivo né, mas não consegui bolar de que forma eu vou manter a hierarquia de objeto pai e objeto filho nisso

por favor, alguém pode me ajudar em como seria a lógica desse método? não tenho muita pratica com métodos recursivos, qualquer ajuda serve!

Cara, quando eu quero preservar a ordem de inclusao de objetos em uma lista eu utilizo uma implementacao da interface Queue, por exemplo:

Queue <T> minhaLista = new LikedList<T>();

Ate mais.

na verdade não era a ordem de adição, e sim aquilo tipo: projeto.add(outroprojeto)

enfim, não sei como, mas acabei conseguindo aqui!

primeiro fiz uma lógica para pegar os objetos raíz

[code]for(AtividadeProcesso atividadeProcesso : lista) {
if (atividadeProcesso.getAtividadeProcesso() == null){ //pegando as atividadeProcessos que não possuem uma atividade Pai
AtividadeProjeto atividadeProcesso = new AtividadeProjet();
atividadeProcesso.sets // setando os campos dos atividadeProcessos em atividadeProjeto

atividadeProcesso.getAtividadeProjetos().add((setAtividadeProjetoAtividadeProcessos(atividadeProcesso, atividadeProcesso))); //acionando o método recursivo pra adicionar a lista completa na lista de objetos das atividades raíz
projeto.getAtividadeProjetos().add(atividadeProjeto);
}
}
[/code]

e o método recursivo feito meio na cagada/intuição!

public AtividadeProjeto setAtividadeProjetoAtividadeProcessos(AtividadeProcesso apc, AtividadeProjeto apj){
if(apc.getAtividadeProcessos() != null) { // if pra parar o método recursivo
for (AtividadeProcesso atividadeProcesso : apc.getAtividadeProcessos()){ //percorrendo a lista de atividadeProcessos e fazendo a cópia para atividadeProjetos
AtividadeProjeto atividadeProjeto = new AtividadeProjeto();
atividadeProjeto.sets // sets, também para setar o apj como pai do novo AtividadeProjeto

//recursividade
apj.getAtividadeProjetos().add(setAtividadeProjetoAtividadeProcessos(atividadeProcesso, atividadeProjeto));
}
}
return apj;
}

depois foi só salvar o projeto… ufa!
não sei se deu pra entender… mas se alguém precisar um dia :stuck_out_tongue:

valeu pela força Vini…