Como puedo asociar partes de un array a un usuario??

Iniciado por Shakos, 14 Abril 2011, 19:35 PM

0 Miembros y 1 Visitante están viendo este tema.

Shakos

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
?

Valkyr

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.

sapito169

bueno no estoy con ganas de crear la mejor solucion a si que te muestro la mas chapusera


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);