supone que soy creado un HashMap
dentro de otro HashMap
como se muestra a continuación que puede almacenar el valor dentro del interior HashMap
basada en la clave del exterior HashMap
en el tiempo de ejecuciónAlmacenamiento de un HashMap dentro de otro HashMap y mejorar el rendimiento
es decir, la salida requerida para el programa debe tener el formato
{ 1 = {11 = "aaa",15 = "bbb"}, 2 = {13 = "ccc", 14 = "ddd"} }
donde 1,2 son valores clave para HashMap externo.
A continuación se muestra el código proporcionado por ella ¿Hay alguna mejor enfoque para mejorar el rendimiento
HashMap<Integer, HashMap<Integer, String>>Outer
= new HashMap<Integer, HashMap<Integer,String>>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int count = Integer.parseInt(br.readLine());
for(int i =0;i<count;i++)
{
String input[] = br.readLine().split("\\s");
//HashMap<Integer,String>inner = new HashMap<Integer, String>();
int key = Integer.parseInt(input[0]);
if(Outer.isEmpty() || !Outer.containsKey(key))
{
HashMap<Integer, String> inner = new HashMap<Integer, String>();
inner.put(Integer.parseInt(input[1]),input[2]);
Outer.put(key, inner);
}
else if(Outer.containsKey(key))
{
HashMap<Integer, String> inner = (HashMap<Integer, String>) Outer.get(key).clone();
inner.put(Integer.parseInt(input[1]), input[2]);
Outer.put(key, inner);
}
}
¿Por qué crees que necesitas mejorar el rendimiento? ¿Este código toma una cantidad extraordinaria de tiempo para ejecutarse? – Jeffrey
Creo que usar un hashmap de dos niveles tiene más probabilidades de reducir el rendimiento que aumentarlo. –
Si bien no está claro, podría suponerse a partir de la pregunta de que la división en 2 mapas no es por motivos de rendimiento. Tenga en cuenta que la determinación de qué mapa externo usar se lee de la entrada, no es otro hash calculado. Creo que la pregunta está dirigida a mejorar el rendimiento de la implementación dada, que requiere el uso de mapas anidados. – ziesemer