Bom, estou travado na hora de montar um array específico aqui, preciso de uma força de vocês na lógica!
A idéia é montar um Array que contenha dentro de cada posição [i], uma String, e um outro Array, exemplo: ArrayList teste[i] = {“StringQualquer”,ArrayList teste2} ;
Eu estou tentando fazer o máximo orientado á objeto, só que como eu disse, é um array especifico pois eu vou ter que separar os dados para que o array final possa me formar uma Árvore de Diretórios, ou seja, alguns dados irão ser filhos de outros, e poderão ter seus filhos também. Que seria no caso do "ArrayList teste2 do exemplo acima, ter uma outra String e Array dentro dele.
A minha lógica está assim:
public List<MenuFlex> montaMenu(){
ArrayList<Menu> entrada = new ArrayList<Menu>();
ArrayList<Menu> pai = new ArrayList<Menu>();
ArrayList<Menu> filho = new ArrayList<Menu>();
ArrayList<MenuFlex> monta = new ArrayList<MenuFlex>();
ArrayList<MenuFlex> saida = new ArrayList<MenuFlex>();
entrada = pegaTree(); //pegaTree() é um método que vai no Banco e me trás os dados que eu preciso pra saber quem é pai e quem é filho.
for (Menu bean : entrada) {
pai.add(bean);
}
for (Menu bean : entrada) {
filho.add(bean);
}
//Até aqui eu tenho dois Arrays, um Pai e um Filho, como os mesmos dados em suas posições.
for(Menu p : pai){
for(Menu f : filho) {
if(f.getIdpai() == p.getIdmenu()){ // A classe Menu é responsavel por armazenar os ID's para fazer as Comparações
MenuFlex m = new MenuFlex(null,null); //Essa classe MenuFlex é um VO/Bean/POJO que tem uma String e um Array, e os pega no construtor
m.setName(f.getName());
monta.add(m);
saida.add(new MenuFlex(p.getName(),monta));
}
}
}
return saida;
}
Certo, se estranharem porque eu criei uma classe Menu e outra MenuFlex, é porque o flex só vai conseguir interpretar meu Array se ele contiver apenas UM String e UM Array …e como a classe Menu tem os ID’s, se eu usar ela, o flex bagunça tudo…
Essa minha lógica só contempla um nível, ou seja, se os filhos tiverem filhos também, eles não serão montados da forma certa…alguém ai tem ideias para me destravar aqui?? não to conseguindo sair disso!! x\\
Qualquer ajuda é bem vinda!