Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: manuel_coronil en 15 de Junio 2014, 20:02
-
Saludos a todos. ME piden implementar este método sin usar ningun bucle.
public static String empresaMasFrecuente(Usuario u) : Obtiene el nombre de la empresa que aparece mas veces en las apps descargados por el usuario u.
A modo de pista para la resolucion sin bucles me dan el siguiente trozo de código :
public class ComparadorStringFrec implements Comparator<String>{
/*
* Compara cadenas de caracteres segun su frecuencia de aparicion
*/
private Multiset<String> cadenas;
............................................
............................................
}
-
Lo primero que habría que mirar es con qué método puedes, dado un usuario u, obtener la estructura de datos donde está la información sobre las apps descargadas. Si te piden que lo hagas sin un bucle supongo que a dicha estructura de datos deberás aplicarle un método disponible que te devuelve la frecuencia.
Introduciendo las cadenas en multiset, puedes obtener la frecuencia de cada cadena:
Multiset<String> strings = HashMultiset.create(arrayList);
int countX = strings.count("x"); // Con esto obtienes el número de veces que aparece x en la colección arrayList, en tu caso tendrás que pasarle la colección con las apps descargadas por el usuario, tendrás que ver qué colección es esta...
-
El método que tiene el tipo Usuario es AppsInstaladas: de tipo Set<App>. Consultable. Sin restricciones.Indica las aplicaciones que el usuario ha descargado e instalado en su plataforma.
Gracias.
-
El método copyHighestCountFirst parece que puede servirte.
http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Multisets.html#copyHighestCountFirst%28com.google.common.collect.Multiset%29
La idea sería que obtengas la lista de empresas del Set<App> y seguidamente le apliques este método.
Aquí hay un ejemplo: http://stackoverflow.com/questions/4345633/simplest-way-to-iterate-through-a-multiset-in-the-order-of-element-frequency