Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - kikian94

#31
Java / Re: Meter un Set en un Map
7 Marzo 2015, 17:09 PM
vale, perdon por la tonteria, el problema era la raiz del disco c, ahora si me deja...., solo me queda el metodo que ordena y el de leer
#32
Java / Re: Meter un Set en un Map
7 Marzo 2015, 16:59 PM
ya he solucionado el problema, estaba en que cuando creaba la provincia creaba un set con valor null y yo pensaba que al poner null era que estaba vacio, ahi tenia el error, ahora solo me queda codificar 3 clases mas, una para guardar en fichero, otra para escribir y otra para ordenar por habitantes o nombre

Código (java) [Seleccionar]
public boolean guardar(String escritura) {
try{
File fichero = new File (escritura);
FileWriter escribir = new FileWriter (fichero);
for(Map.Entry<String,SortedSet<IPoblacion>> entry: Aprovincias.entrySet()){
escribir.write(entry.getKey() + " " +  entry.getValue());
}
escribir.close();
return true;
}catch(Exception e){
e.printStackTrace();
}
return false;
}

@Override
public boolean ordenarPor(String provincia, int ordenarPor) {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean recuperar(String arg0) {
// TODO Auto-generated method stub
return false;
}



al escribir el fichero me dice esto
Código (java) [Seleccionar]
java.io.FileNotFoundException: c:\prueba.txt (Acceso denegado)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileWriter.<init>(Unknown Source)
at AlmacenPoblaciones.guardar(AlmacenPoblaciones.java:276)
at test.main(test.java:26)


#33
Java / Re: Meter un Set en un Map
4 Marzo 2015, 17:29 PM
La doble negacion se me ha pasado, lo ejecuto todo pero me dice que no puedo añadir la poblacion por que la provincia no existe, y me da otra vez nullpointerexception

Código (java) [Seleccionar]
public class AlmacenPoblaciones implements IAlmacenPoblaciones {

Map<String, SortedSet<IPoblacion>> Aprovincias = new HashMap<String, SortedSet<IPoblacion>>();


private SortedSet<IPoblacion> getPoblacion(String provincia) {
SortedSet<IPoblacion> poblacion = null;
for(Map.Entry<String, SortedSet<IPoblacion>> entry : Aprovincias.entrySet()) {
if(entry.getKey().equals(provincia))
poblacion = entry.getValue();
}
return poblacion;
}

@Override
public boolean addPoblacion(String provincia, IPoblacion poblacion) {
boolean res = false;
if(!Aprovincias.containsKey(provincia)){
res = false;
System.out.println("La Provincia no existe, creela antes de añadir poblacion");
}else{
SortedSet<IPoblacion> sPoblacion = getPoblacion(provincia);
sPoblacion.add(poblacion);                   Aqui es donde me da error y no se por que
Aprovincias.put(provincia, sPoblacion);    Aqui es donde me da error y no se por que
res = true;
}
return res;
}


@Override
public boolean addProvincia(String provincia) {
SortedSet<IPoblacion> poblaciones = null;
boolean res = false;
if(Aprovincias.containsKey(provincia)){
System.out.println("Ya existe la provincia");
}else{
Aprovincias.put(provincia, poblaciones);
res = true;
}
return res;
}

@Override
public boolean containsPoblacion(String provincia, String poblacion) {

boolean res = false;
if(!!Aprovincias.containsValue(provincia)){
res = false;
System.out.println("La Provincia no existe, creela antes de eliminar poblacion");
}else{
SortedSet<IPoblacion> sPoblacion = (SortedSet<IPoblacion>) getPoblacion(provincia);
if(sPoblacion.contains(poblacion)){
res = true;
}

}
return res;

}

@Override
public boolean containsPoblacion(String arg0, IPoblacion arg1) {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean containsProvincia(String provincia) {
boolean res = false;
if(Aprovincias.containsKey(provincia)){
res = true;
System.out.println("La provincia esta en el almacen");
}else{
System.out.println("La provincia no esta en el almacen");
}
return res;
}



mi metodo main es este

Código (java) [Seleccionar]
public class test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stu

Poblacion poblacion = new Poblacion("Getafe",0,"Madrid");
Poblacion poblacion2 = new Poblacion("Leganes", 345,"Madrid");

AlmacenPoblaciones provincias = new AlmacenPoblaciones();
provincias.addProvincia("Madrid");
provincias.addPoblacion("Madrid", poblacion);
provincias.addPoblacion("Madrid", poblacion2);

}

}



y la clase poblacion es tal cual tu me la has escrito mas arriba, puede estar el error en el tipo de objeto que añado? ya que la clase es poblacion y el set tiene ipoblacion
#34
Java / Re: Meter un Set en un Map
3 Marzo 2015, 17:49 PM
Cita de: Gus Garsaky en  2 Marzo 2015, 11:40 AM

vale, creo que ya lo he entendido, he codificado el metodo asi:


Código (java) [Seleccionar]
public boolean addPoblacion(String provincia, IPoblacion poblacion) {
boolean res = false;
if(!!Aprovincias.containsValue(provincia)){
res = false;
System.out.println("La Provincia no existe, creela antes de añadir poblacion");
}else{
SortedSet<IPoblacion> sPoblacion = (SortedSet<IPoblacion>) getPoblacion(provincia);
sPoblacion.add(poblacion);
Aprovincias.put(provincia, sPoblacion);
res = true;
}
return res;
}



pero al hacer un test del programa con este codigo:

Código (java) [Seleccionar]
public class test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

Map<String, Set<IPoblacion>> Aprovincias = new HashMap<String, Set<IPoblacion>>();

Poblacion poblacion = new Poblacion("Getafe",0,"Madrid");
Poblacion poblacion2 = new Poblacion("Leganes", 345,"Madrid");

AlmacenPoblaciones provincias = new AlmacenPoblaciones();
provincias.addProvincia("Madrid");
provincias.addPoblacion("Madrid", poblacion);
//provincias.addPoblacion("Madrid", poblacion2);
}

}


me da nullpointer exception en la linea en la que añado la poblacion al Set, el metodo que utilizo para sacar el set lo he codificado asi:
Código (java) [Seleccionar]
private Set<IPoblacion> getPoblacion(String provincia) {
Set<IPoblacion> poblacion = null;
for(Map.Entry<String, Set<IPoblacion>> entry : Aprovincias.entrySet()) {
if(entry.getKey().equals(provincia))
poblacion = entry.getValue();
}
return poblacion;
}


Creo que el error lo tengo en el tipo de objeto que meto en el Set, pero me hago un lio por que el set tiene objetos de tipo Ipoblacion que es una interfaz que tengo que implementar y lo que yo creo son poblaciones de la clase poblacion que es la clase que queda al implementarse Ipoblacion

[\quote]
#35
Java / Re: Meter un Set en un Map
2 Marzo 2015, 10:09 AM
hola, gracias por contestar, la primera parte del codigo la entiendo perfectamente, pero la segunda no, no se utilizar el entrySet para agregar provincias al Set y luego meter el Set en el Map
#36
Java / Meter un Set en un Map
27 Febrero 2015, 14:43 PM
Hola, necesito crear un almacen de provincias, las cuales a su vez tienen poblaciones asociadas, tiene que hacerse con un map en el que la clave es el nombre de la provincia y el valor un set con las poblaciones, hasta ahi todo bien, el problema lo tengo en añadir las poblaciones al set que no se como hacerlo ya que tengo que pasar por el map antes, tengo esta clase:
Código (java) [Seleccionar]


Map<String, Set<Poblacion>> Aprovincias = new HashMap<String, Set<Poblacion>>();

public boolean addPoblacion(String provincia, IPoblacion poblacion) {
boolean res = false;
if(!!Aprovincias.containsValue(provincia)){
res = false;
System.out.println("La Provincia no existe, creela antes de añadir poblacion");
}else{

//Aprovincias.put(provincia, );
                        Aqui es donde tengo el problema, ya que no se que hacer
}
return res;
}


#37
ya lo arregle y me funciona perfectamente, muchas gracias :)
#38
ya, si ya se que esta mal al pasarlo, pero lo que no me queda claro es como recorrer el array muro e ir accediendo a los 4 parametros de cada elemento, han sido declarados asi
Código (java) [Seleccionar]
new Muro(new Vector(0, .5),new Vector(.005, .5))
que tengo que hacer refernecia al objeto muro y asu vez a vector?
#39
quiero utilizar este metodo StdDraw.filledRectangle(double,double,double,double) y tengo que pasarle los 4 parametros definidos previamente en cada objeto muro, como lo hago? asi esta mal, ya que paso la referencia StdDraw.filledRectangle(muro);
#40
Cita de: egyware en 11 Marzo 2014, 15:41 PM
Mi respuesta a tu pregunta ya está respondida.

Fíjate bien el el "this", yo lo que hice fue hacer un constructor más cómodo. Sin embargo perfectamente podías hacer esto.

Código (java) [Seleccionar]

new Muro(new Vector(0, .5), new Vector(.005, .5));


lo probe y perfecto amigo, muchas gracias, que rapidez a si es genial :)