Dúvida básica

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.