¿Por qué utilizar un hashmap?

Alguien me dijo que los hashmaps son bastante lentos. Así que me pregunto si utilizar hashmap o una lógica de caso de conmutador.

Mi requisito es esto. Tengo un conjunto de CountryNames y CountryCodes. Mi ListView muestra los nombres de los países. Cuando se hace clic en un elemento de nombre de país, debo Tostar el CountryCode.

En tal escenario, ¿debería mantener un HashMap de CountryNames and Codes y acceder a esto para obtener el código correspondiente ?:

myMap.put("US", 355); myMap.put("UK", 459); //etc 

¿O es mejor escribir un caso de conmutación así

 switch (vCountryNamePos): { case 0: //US vCountryCode = 355; break; case 1: //UK vCountryCode = 459; break; //etc } 

¿Cuál es más rápido? Si no es Hashmaps, ¿en qué escenarios prácticos se utilizará un Mapa?

Kiki

Para dos valores, un interruptor será más rápido. Un hashmap siempre verificará al menos la igualdad de la clave, por lo que no puede superar una o dos pruebas .equals ().
Para muchos valores, un hash será más rápido. Un interruptor tiene que probar cada valor hasta que encuentre el derecho.

Para un pequeño número de valores (digamos hasta 10 o así), prefieren un interruptor. Va a ser más ligero y más rápido.
Para un gran número de valores (en más de 50), prefieren un hash. Un hash no tendrá que comprobar todos los valores, por lo que será más rápido que un interruptor cuando el número de valores aumenta. Para valores de 10 ~ 50, te sugiero que hagas lo que sientes es más legible porque el rendimiento va a ser similar.

Ahora si usted está mirando en el funcionamiento extremo en las secuencias estáticas conocidas en tiempo de la compilación, usted puede mirar en herramientas que generan código como gnuperf.
Si usted no sabe sus secuencias en tiempo de compilación, pero sabes que van a ser decentemente corto y decentemente uniforme en longitud, o con prefijos comunes, probablemente va a ser más rápido con una estructura de datos Trie.
Si desea mantener el rendimiento en un gran número de cadenas muy heterogéneas, o en objetos que no pueden ser cadenas, entonces HashMap es el camino a seguir. Es bastante inmejorable cuando el número de objetos es muy alto (en miles de millones o más).

  • Cobertura de Jacoco para la declaración de switch
  • Cómo cambiar el color de texto del conmutador en Android
  • Cómo detectar cuándo un conmutador se desliza, no se hace clic
  • Android: cambia a la actividad sin reiniciarla
  • ¿Cómo puedo agregar tercer estado en Android Switch?
  • ¿Usando cuerdas en una caja de conmutación para un menú?
  • Android Studio no me deja usar el interruptor en una cadena?
  • Switch case statement error: las expresiones case deben ser constantes
  • Cómo cambiar el color de entrada del imput en xml?
  • Cómo cambiar entre actividades con viewflipper
  • Problema de conmutación: solo una opción visible
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.