Node[] Qual a utilização comum

12 respostas
S

Boa noite pessoal,

Tenho me aprofundado em Java nos meus estudos e tenho focado bastante nessa tecnologia e então resolvi procurar uma oportunidade no mercado. Na minha primeira entrevista pra java fiz uma prova que caiu uma questão que fiquei intrigado pelo fato de nunca ter visto nos meus estudos(aspostilas e internet) o recurso utilizado.

Node[], a questão um pouco chata de se fazer no papel, mas deixei em branco pelo fato de não saber que recurso era esse Node[]…

Afinal é muito utilizado no desenvolvimento java, foi falha no meu estudo não ter visto ou é algo antigo do java? Me pareceu ser uma Collection, mas sinceramente nunca o vi antes. É utilizado geralmente em que?

A questão era a seguinte criar um metodo que retornasse uma string com a hierarquia dos registro tipo:

id—nome—idPai
0-----root----0
1----child----0
2 —child2—1
3----child3—1

ae por exemplo vc recebia o id 3 o retorno teria que ser a segunte string: root : child : child3 e a assinatura do metodo recebia um dado do tipo Node[] …

já estudei: LinkedList, ArrayList, Vector, HashSet, TreeSet, HashTable e HashMap, mas Node ? em que pacote ta isso?

bom é isso…

desde já agradeço a paciência por essa pergunta estúpida.

abcs

12 Respostas

nel

Oi !

Isso é um Node.
Pertence a API org.w3c.dom. Aqui tem um curto post sobre DOM.

De qualquer forma, nada mais é que uma API para manipulação de XML. Esse array de Nodes pode representar, por exemplo, todas as tags filhas de um nó pai, que acredito que era o que eles precisavam. Mas está ai, já que quer se aprofundar um pouco mais em Java, ler sobre manipulação de XML em Java é importante.

Abraços !

ruivo

nel:
Oi !

Isso é um Node.
Pertence a API org.w3c.dom. Aqui tem um curto post sobre DOM.

De qualquer forma, nada mais é que uma API para manipulação de XML. Esse array de Nodes pode representar, por exemplo, todas as tags filhas de um nó pai, que acredito que era o que eles precisavam. Mas está ai, já que quer se aprofundar um pouco mais em Java, ler sobre manipulação de XML em Java é importante.

Abraços !

@nel
Eu tenho quase certeza que não. O que o entrevistador queria saber é se ele conhecia estruturas de dados. deu um método que tinha como entrada um array de um classe qualquer, que nesse caso ele chamou de Node e queria que o entrevistado soubesse escrever o algoritmo que, dada a entrada 3 e o array, conseguisse imprimir toda a saída corretamente, navegando pelos itens.

@serraventura
Cara, estude algoritmos. Pelo jeito, a sua base está muito, mas MUITO ruim. Programar não é só conhecer a linguagem. Para programar, a linguagem é o que menos conta. Se você souber os conceitos, a base, em um mês você aprende qualquer sintaxe de linguagem.

nel

ruivo:
nel:
Oi !

Isso é um Node.
Pertence a API org.w3c.dom. Aqui tem um curto post sobre DOM.

De qualquer forma, nada mais é que uma API para manipulação de XML. Esse array de Nodes pode representar, por exemplo, todas as tags filhas de um nó pai, que acredito que era o que eles precisavam. Mas está ai, já que quer se aprofundar um pouco mais em Java, ler sobre manipulação de XML em Java é importante.

Abraços !

@nel
Eu tenho quase certeza que não. O que o entrevistador queria saber é se ele conhecia estruturas de dados. deu um método que tinha como entrada um array de um classe qualquer, que nesse caso ele chamou de Node e queria que o entrevistado soubesse escrever o algoritmo que, dada a entrada 3 e o array, conseguisse imprimir toda a saída corretamente, navegando pelos itens.

@serraventura
Cara, estude algoritmos. Pelo jeito, a sua base está muito, mas MUITO ruim. Programar não é só conhecer a linguagem. Para programar, a linguagem é o que menos conta. Se você souber os conceitos, a base, em um mês você aprende qualquer sintaxe de linguagem.

Como não ? Veja isso:

d---nome---idPai 
0-----root----0 
1----child----0 
2 ---child2---1 
3----child3---1

root, child, são todos métodos encontrados no Node. Isso é manipulação de XML sim! Só se a empresa gosta de piadinhas ou pegadinhas e resolve criar então uma classe que coincidentemente me coloca o mesmo nome de uma classe nativa do Java e com nomes idênticos ao dela. Eu apostaria sim, minhas fichas, que trata-se do Node que expliquei no post acima.

ruivo

nel:

Como não ? Veja isso:

d---nome---idPai 
0-----root----0 
1----child----0 
2 ---child2---1 
3----child3---1

root, child, são todos métodos encontrados no Node. Isso é manipulação de XML sim! Só se a empresa gosta de piadinhas ou pegadinhas e resolve criar então uma classe que coincidentemente me coloca o mesmo nome de uma classe nativa do Java e com nomes idênticos ao dela. Eu apostaria sim, minhas fichas, que trata-se do Node que expliquei no post acima.

Bem, agora eu coloquei a preguiça de lado e resolvi pensar. :slight_smile: A classe que a empresa mencionou é a seguinte:

class Node{

int d;

String nome;

int idPai;

}

root, child são valores dos atributo nome. Leia corretamente lá, você tem root, child1, child2 e child3. Duvido que Node do java tenha child3. Tem?

E outra, não é pegadinha de empresa. É pra saber se o cara sabe programar. Aliás, na questão, eu acho que de Java, só a sintaxe. Pq pelo que ele disse, nessa questão em específico não precisa de nenhuma api java.

nel

Não é o método child3, é o método child. Bom, um objeto assim funciona, principalmente se houver uma sobrescrita no método toString().
Só lendo a questão completa mesmo, mas deu muito a entender que se trata de manipulação de XML. De qualquer forma serraventura, mesmo que não seja XML e seja com o ruivo disse, meu aconselho ainda é válido, estude manipulação de XML em Java porque é bastante utilizado.

Abraços.

douglaskd

cara sua pergunta ficou confusa… pq se alguem me pergunta o que é Node[], eu respondo com uma pergunta de que tipo ???

pq eu posso fazer assim:

int Node[10]; String Node[10]; No Node[10];

sem o tipo do objeto não temos como saber, só sair chutando

por ser Node e isso foi uma prova de algoritmos…

então eu “chuto” que é uma Arvore de classes…

quando eu recebesse o id eu imprimiria o valor de todos os pais dessa classe até a Raiz…

pra mim é isso

pmlm

Isto não é focado em XML mas simplesmente uma árvore…

nel

Pois é…eu achei confusa a pergunta. Ou ela foi mal feita ou ela não foi postada por completo nesse exemplo, no meu ponto de vista, é claro.

S

o tipo de dado que se recebia na assinatura do metodo era Node[], achei esse exemplo aqui:

http://www.java2s.com/Tutorial/Java/0440__XML/ConvertNodeListToNodeArray.htm

Até o momento só trabalhei com XStream pra manipulação de XML, não conhecia o Node[]…

No primeiro momento que li a questão tbm achei que fosse apenas um array, mas não era não, se travatava de um dado que era do tipo Node[]…

nel

serraventura:
o tipo de dado que se recebia na assinatura do metodo era Node[], achei esse exemplo aqui:

http://www.java2s.com/Tutorial/Java/0440__XML/ConvertNodeListToNodeArray.htm

Até o momento só trabalhei com XStream pra manipulação de XML, não conhecia o Node[]…

No primeiro momento que li a questão tbm achei que fosse apenas um array, mas não era não, se travatava de um dado que era do tipo Node[]…

Por isso eu acho que era uma questão de manipulação de XML, mas enfim…

S

Agora que tenho uma noção melhor do que se trata o Node[] tenho certeza que era pra tratar um XML…

Só que na questão não se falava em nenhum momento sobre XML(apenas sobre a estrutura hierárquica), então como eu não conhecia o Node[] fiquei boiando…

enfim, mas uma pra aprender :slight_smile:

nel

serraventura:
Agora que tenho uma noção melhor do que se trata o Node[] tenho certeza que era pra tratar um XML…

Só que na questão não se falava em nenhum momento sobre XML(apenas sobre a estrutura hierárquica), então como eu não conhecia o Node[] fiquei boiando…

enfim, mas uma pra aprender :)

Pode ser árvore mesmo como foi citado, mas vou contra os meus caros colegas do GUJ e digo que era XML.
Enfim, estude XML da mesma forma porque é bastante utilizado .

Criado 24 de abril de 2012
Ultima resposta 25 de abr. de 2012
Respostas 12
Participantes 5