Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/03/2011, 20:28
solitary_2_7
 
Fecha de Ingreso: marzo-2011
Mensajes: 1
Antigüedad: 13 años, 1 mes
Puntos: 0
Código Java para poder realizar un diagrama de jerarquías ( usando Colecciones )

Hola gente, les comento mi situación:
Tengo que modificar un código de forma de que realize un árbol de jerarquías .. es decir, tipo los arboles genealógicos, que a partir de un padre se agregan hijos, y a los hijos se le agregan mas hijos y así sucesivamente . Finalmente tengo que imprimir por pantalla el árbol genealógico completo. El problema es que por mas que modifique y modifique las clases, siempre obtengo el siguiente mensaje en consola:


Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to trabajopractico.Nodo
at trabajopractico.ArbolNario.getRoot(ArbolNario.java :39)
at trabajopractico.Organigrama.main(Organigrama.java: 23)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)


Aca les dejo los codigos de cada una de las clases que forman parte del trabajo:



package trabajopractico

import java.util.ArrayList
import java.util.List



@author Peggy
/
public class ArbolNario {

private String s
private List x = new ArrayList()

//completar los elementos private que correspondan

Documentar los métodos.
/
public void setRoot(Nodo root) {
//completar

root.setContent(s)
}

public ArbolNario(Object o) {

x.add(o)


}

public Nodo getRoot() {


return (Nodo) x.get(0)

//completar
}

public Nodo add(Nodo n, Object o) {
//completar

n.setContent(o)
return (Nodo) n.getContent()
}

public List getNodes() {

List cola = new ArrayList()
cola.addAll(x)

return cola
}
}


-


package trabajopractico

import java.util.ArrayList
import java.util.List



@author Peggy
/
public class Nodo {

private List x = new ArrayList()

//completar los elementos private que correspondan


Por qué el constructor es protected?
/
protected Nodo(Object content) {
x.add(content)

}


Por qué este método es protected?
/
protected List getHijos() {
return (List) getContent()
}

public Object getContent() {

Object j = null
for( int i=0 i<= x.size() i++){

j = x.get(0)


}
return j
}

public void setContent(Object content) {

x.add(content)
}
}


-

package trabajopractico

import java.util.ArrayList
import java.util.List
import trabajopractico.Nodo
import trabajopractico.ArbolNario



@author Peggy
/
public class Organigrama {

public static void main(String[] args) {


ArbolNario a = new ArbolNario("CEO") // Presidente es la raíz del árbol

Nodo cfo = a.add((Nodo) a.getRoot(), "CFO")

a.add(cfo, "Gerente de Finanzas")

Nodo gerenteIT = a.add(cfo, "Gerente de IT")

a.add(gerenteIT, "Jefe de Tecnología")
a.add(gerenteIT, "Jefe de Aplicaciones")

Nodo jefeERP = a.add(gerenteIT, "Jefe de ERP")

a.add(jefeERP, "Consultor Sr. 1")
a.add(jefeERP, "Consultor Sr. 2")
a.add(jefeERP, "Consultor Sr. 3")
a.add(jefeERP, "Consultor Jr. 1")

List nodos = new ArrayList()
System.out.println(nodos = a.getNodes())



}
}



Por favor si alguien puede darme una mano con este código se lo agradeceré mucho ya que no tengo buen manejo de las Colecciones.

Muchas Gracias!