elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Dificultades en Java
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Dificultades en Java  (Leído 2,902 veces)
Shakos

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Dificultades en Java
« en: 11 Abril 2011, 21:15 pm »

Estoy haciendo un programa de bastante complicacion , al menos para mi nivel en Java el caso es que es como un periodico.Una breve explicacion de lo que debe pasar en el programa, el usuario puede añadir "trabajadores del periodico", los he guardado en un ArrayList hasta aqui todo bien , sigue de la siguiente manera, cada vez que el usuario escriba el nombre de uno de estos trabajadores se debe activar su columna si es que han publicado algo y mostrar el contenido, el principal problema es que hay un arraylist para las publicaciones pero claro solo puedo añadir publicaciones en general , es decir las publicaciones no estan en la columna de ningun trabajador especifico , me gustaria que cuando yo escribiera el nombre del trabajador y despues publicar, pudiera publicar en su columna , mientras que cuando escriba en la de otro trabajador poder escribir en la suya y finalmente mostrarlas segun los nombres de los trabajadores.
Hasta ahora como ya he dicho solo he conseguido publicar en general, por asi decirlo me publico en mi propia columna pero no se como hacer lo que les he dicho.


En línea

zepheon

Desconectado Desconectado

Mensajes: 30



Ver Perfil
Re: Dificultades en Java
« Respuesta #1 en: 12 Abril 2011, 01:15 am »

Supongo que tendrás una clase Columna y una clase Publicacion, si es así, podrías hacer que uno de los atributos del trabajador sea un objeto de la clase Columna (su columna específica) y que uno de los atributos de Publicacion sea el trabajador que la ha escrito, de esta forma la vinculas con ese trabajador en concreto. Entonces, cuando busques a un trabajador por su nombre, miras su columna y si tiene alguna publicación la muestra. La idea es jugar con los atributos para poder decir "esta publicación pertenece a tal trabajador, a tal columna, o esta columna pertenece a tal trabajador, o el trabajador tiene tales publicaciones, y así poder relacionarlos fácilmente.

Espero que te haya servido de algo aunque estemos hablando del problema a muy grandes rasgos y sin meternos en código. Si ves que no va por ahí la cosa o que habría que tener en cuenta algo sobre la implementación o algún fragmento de código para ayudarte mejor a resolver el problema, bienvenido sea  :xD

Saludos!


En línea

Do or do not, there is no try.

Que la masa por la derivada de la velocidad respecto al tiempo te acompañe.
Shakos

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Dificultades en Java
« Respuesta #2 en: 12 Abril 2011, 17:50 pm »

Haber, la cosa seria que crear un vector de publicaciones para cada trabajador y cada vez que le diera a publicar se activara un array u otro pero eso es imposible primero porque no se cuantos trabajadores se entraran desde el principio y despues que hacerlo seria una mostruosidad de codigo, bueno cuelgo lo que tengo puesto haber si ha alguien se le ocurre alguna forma.

Código
  1. Publicacion mensaje = new Publicacion();
  2.  
  3.    LinkedList columna = new LinkedList();
  4.    private int contador = 0;
  5.  
  6.  
  7.    public Persona(String nombre,String ciudad){
  8.  
  9.        this.nombre = nombre;
  10.        this.ciudad = ciudad;
  11.  
  12.    }
  13.    public Persona(){
  14.  
  15.    }
  16.    public String getNombre(){
  17.        return this.nombre;
  18.    }
  19.    public String getCiudad(){
  20.        return this.ciudad;
  21.    }
  22.  
  23.    @Override
  24.    public String toString(){
  25.  
  26.        String str = ("=============="+"\n"+this.nombre+"\n" + this.ciudad+"\n");
  27.        return str;
  28.    }
  29.  
  30.    public void Publicar(String msg){
  31.  
  32.        long fecha = ClaseAuxiliar.getFechaActual();
  33.        Publicacion nueva = new Publicacion(fecha,msg);
  34.        mensaje = nueva;
  35.        publicaciones.add(mensaje);
  36.        columna.add(publicaciones);
  37.  
  38.    }
  39.    public void Columna(){
  40.  
  41.         if(!columna.isEmpty()){
  42.  
  43.              System.out.println("      columna      ");
  44.              for(Iterator it = publicaciones.iterator(); it.hasNext();){
  45.                  Publicacion x = (Publicacion)it.next();
  46.                  System.out.println(x.toString());
  47.  
  48.              }
  49.             }
  50.              if(muros.isEmpty()){
  51.                  System.out.println("\nNo hay publicaciones recientes");
  52.              }
  53.  
  54.    }
« Última modificación: 16 Abril 2011, 00:06 am por Debci » En línea

zepheon

Desconectado Desconectado

Mensajes: 30



Ver Perfil
Re: Dificultades en Java
« Respuesta #3 en: 15 Abril 2011, 14:52 pm »

Siento si no te respondí antes, es que he estado con exámenes y no he tenido tiempo ni para respirar xD Vi también que abriste otro post buscando alguien que te ayude sin mucha suerte, supongo que te urgirá hacer esto, así que intentaré ayudarte xD

Bueno, para empezar, yo personalmente definiría Columna como una clase a parte e implementaría una LinkedList de columnas, dentro de las que habrá o no una publicación.

Te dejo un ejemplo muy básico de como usar un HashMap aplicado a esto, que posiblemente te sirva para resolver tu problema.

Código
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.HashMap;
  5. import java.util.LinkedList;
  6.  
  7. public class HashEjemplo {
  8.  
  9. public static void main(String[] args) throws IOException {
  10.  
  11.  
  12. // Se definen dos personas de prueba
  13. Persona juanito = new Persona("Juanito", "Tokio");
  14. Persona pepito = new Persona("Pepito", "Nueva York");
  15.  
  16. // Creas el HashMap, las keys seran sus nombres y los values sus
  17. // columnas
  18. HashMap hm = new HashMap();
  19. hm.put(juanito.getNombre(), juanito.getColumnas());
  20. hm.put(pepito.getNombre(), pepito.getColumnas());
  21.  
  22. LinkedList columnas = null;
  23.  
  24. System.out.println("Nombre del trabajador: ");
  25. String name = br.readLine();
  26.  
  27. // Si el HashMap contiene un value con dicha key, lo devuelve
  28. if (hm.containsKey(name))
  29. columnas = (LinkedList) hm.get(name);
  30.  
  31. }
  32.  
  33. }
  34.  

Para implementarlo a tu aplicación, cada vez que creas un trabajador lo metes en el HashMap con su nombre como key y sus columnas como value, y luego para imprimir sus columnas recorres la LinkedList e imprimes, si es que tiene, su publicación.

Espero que te sirva, saludos!
En línea

Do or do not, there is no try.

Que la masa por la derivada de la velocidad respecto al tiempo te acompañe.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
dificultades con cap9
Ingeniería Inversa
_Bj0rD_ 6 2,704 Último mensaje 15 Febrero 2005, 07:20 am
por _Bj0rD_
¿como hacer que java no llame a Java Runtime Environment?
Java
misforos 3 4,462 Último mensaje 28 Mayo 2010, 17:12 pm
por egyware
Que se necesita para programar en java y c++ con JNI(JAVA NATIVE INTERFACE)?
Java
hack-4-life 8 10,822 Último mensaje 5 Octubre 2010, 03:01 am
por hack-4-life
El fin del roaming: las ventajas de un objetivo no exento de dificultades
Noticias
wolfbcn 0 1,173 Último mensaje 3 Febrero 2013, 22:04 pm
por wolfbcn
Dificultades para utilizar Snort
GNU/Linux
WHK 2 3,213 Último mensaje 27 Marzo 2015, 21:34 pm
por MinusFour
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines