Pessoal,
estou com um probleminha básico. E acho que não quero recriar a roda.
Bom, vamos lá…
Tenho vários objetos com um atributo que é uma string. Porém, esta string segue o seguinte padrão:
1 - x
1.1 - x.1
1.1.1 - x.2
1.1.1.1 - x3.
1.1.2 - y1
1.2 - z
Porém, gostaria que esses objetos estivessem em uma árvore.
Ex.:
1
- 1.1
– 1.1.1
— 1.1.1.1
– 1.1.2
- 1.2
Sendo que, eu gostaria de inserir os objetos somente pelo atributo. Algo do tipo: add(id, objeto) e essa classe faria essa inclusão na posição correta. Sem muito esforço. Pois gostaria de utilizar o TreeNode do Primefaces.
Alguém poderia me ajudar???
Abraços
ja viu se na documentação do primefaces, não teria um exemplo desse componente TreeNode ?
tenta assim:
public static void main(String[] args) {
Set<String> arvore = new TreeSet<String>();
arvore.add("1");
arvore.add("1.1");
arvore.add("1.1.1");
arvore.add("1.1.1.1");
arvore.add("1.1.2");
arvore.add("1.2");
for (String s : arvore) {
System.out.printf("\n%s ", s);
}
}
Oi Robson,
obrigado pelo retorno. Já tinha utilizado a TreeSet para ordenar meus dados. O PF tem um exemplo que utiliza tree porém, os dados estão hard code, veja abaixo.
public TreeBean() {
root = new DefaultTreeNode("Root", null);
TreeNode node0 = new DefaultTreeNode("Node 0", root);
TreeNode node1 = new DefaultTreeNode("Node 1", root);
TreeNode node2 = new DefaultTreeNode("Node 2", root);
TreeNode node00 = new DefaultTreeNode("Node 0.0", node0);
TreeNode node01 = new DefaultTreeNode("Node 0.1", node0);
TreeNode node10 = new DefaultTreeNode("Node 1.0", node1);
TreeNode node11 = new DefaultTreeNode("Node 1.1", node1);
TreeNode node000 = new DefaultTreeNode("Node 0.0.0", node00);
TreeNode node001 = new DefaultTreeNode("Node 0.0.1", node00);
TreeNode node010 = new DefaultTreeNode("Node 0.1.0", node01);
TreeNode node100 = new DefaultTreeNode("Node 1.0.0", node10);
}
O que estou pretendendo é identificar que 1.1 é menor que 1.2 e incluir no mesmo nível. E assim para seus respectivos filhos.