Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Shakos en 14 Abril 2011, 19:35 pm



Título: Como puedo asociar partes de un array a un usuario??
Publicado por: Shakos en 14 Abril 2011, 19:35 pm
Estoy en un problema del cual no veo solución , he hecho un programa de gestion , donde cada usuario que guarda el sistema puede dejar su comentario en un arraylist de comentarios, el problema es que a mi no me interesa que se vean  todos los comentarios de todas las personas, me explico si yo al programa le pongo juan quiero  que me salgan los comentarios que jun haya podido dejar mientas que si pongo alberto me salgan los de alberto, me propusieron de hacer un Hashmap pero no se muy bien como se hace.
Basicamente el problema es:

Arraydecomentarios.add(comentario) // aqui esta el problema el vector arraydecomentarios es donde publican todos, habria alguna manera de segmentarlo y asignar un nombre a cada uno de los comentarios que se pongan para que asi se pueda hacer de la forma mas correcta posible
?


Título: Re: Como puedo asociar partes de un array a un usuario??
Publicado por: Valkyr en 16 Abril 2011, 16:36 pm
A mi se me ocurre esta posible solución:

Creas una clase Comentario con dos atributos uno el identificador del usuario que realiza ese comentario, y otro atributo donde guardar el contenido del comentario. Una vez creada almacenas los objetos comentario en un arraylist, o linkedlist o donde tu quieras. Los vas añadiendo como tu mismo has puesto arraylist.add(comentario) y cuando un usuario quiera ver sus comentarios únicamente recorres todo el arraylist y vas viendo el identificador, si es igual al del usuario lo muestras si no no haces nada. Tendrías un orden de complejidad O(n) que, aunque no sea un orden lineal, está bastante.

Espero que esto te ayude.

Saludos.


Título: Re: Como puedo asociar partes de un array a un usuario??
Publicado por: sapito169 en 16 Abril 2011, 20:15 pm
bueno no estoy con ganas de crear la mejor solucion a si que te muestro la mas chapusera

Código:
List<Comentario> comentarios = new ArrayList<Comentario>();
comentarios.add(new Comentario("contenido 1", "autor1"));
comentarios.add(new Comentario("contenido 2", "autor1"));
comentarios.add(new Comentario("contenido 3", "shakos"));
comentarios.add(new Comentario("contenido 4", "autor1"));
comentarios.add(new Comentario("contenido 5", "shakos"));
comentarios.add(new Comentario("contenido 6", "shakos"));
List<Comentario> comentarioFiltrado = new ArrayList<Comentario>();
String autroBusacado = "shakos";
for (Comentario comentario : comentarios) {
if (autroBusacado.equals(comentario.getAutor())) {
comentarioFiltrado.add(comentario);
}
}
System.out.println(comentarioFiltrado);