Obtener valor de ArrayList <NameValuePair> por nombre

¿Es una manera correcta de obtener el valor de ArrayList<NameValuePair> por nombre?

 private String getValueByKey(ArrayList<NameValuePair> _list, String key) { for(NameValuePair nvPair : _list) { if(nvPair.getName().equals(key)) { return nvPair.getValue().toString(); } } return null; } 

O, ¿hay un acceso directo para acceder al valor de ArrayList<NameValuePair> por nombre?

No – los almacena como una lista, que no está diseñada para ser accedida por "clave" – ​​no tiene ninguna noción de una clave.

Parece que realmente quieres algo como un Map<String, String> – asumiendo que solo necesitas almacenar un solo valor para cada clave.

Si estás atascado con la ArrayList (y al menos cambiaría el tipo de parámetro a List , si no es Iterable dado que eso es todo lo que necesitas) entonces lo que tienes está bien.

Parece que usted necesita otra estructura de datos. Por ejemplo Map<Name, Value> o Map<Name, NameValuePair> si lo desea.

La primera solución es probablemente más correcta, la segunda es más fácil de implementar si ya tiene código que utiliza el hecho de que los pares se almacenan en la lista. Mapa permite obtener colección de valores; Collection es una interfaz estupenda de la List .

Si puede utilizar un Map lugar, funcionan de esta manera:

 Map<String,String> myMap = new HashMap<>(); myMap.put("key1","value1"); myMap.put("key2","value2"); myMap.put("key3","value3"); String str = myMap.get("key1"); //equivalent to your String str = getValueByKey(myList,"key1"); 

Con un HashMap las claves no se almacenan como una lista, por lo que será más rápido y no tendrá que utilizar una función para iterar el contenedor.

A continuación, puede acceder a todos los valores con myMap.keySet() y myMap.values() , consulte la documentación .

Si su clave o nombre es un entero, le sugiero que utilice un SparseArray en SparseArray lugar: http://developer.android.com/reference/android/util/SparseArray.html

A continuación, puede utilizar diferentes funciones para recuperar los valores que desee utilizando la clave, el valor o el índice de la matriz.

  • Android Calendar problema con el día de la semana
  • Añadir oyente a oyente conjunto
  • Enviar solicitud HTTP GET con el encabezado
  • ¿Qué es getSeekableFileDescriptor () en este documento android?
  • Android, hacer desbordamiento de vista desplazable a la izquierda en lugar de a la derecha?
  • ¿Cómo puedo asegurar que el controlador de otro hilo no sea nulo antes de llamarlo?
  • Retrofit 2.0 cómo eliminar?
  • ¿Cómo puedo hacer que mi código sea seguro? - Privado vs. Pública
  • Utilice los módulos Dagger sin la directiva "inyecta"
  • Android ImageView rotativo
  • DoubleClick for Publishers en Google Play Services causa NullPointerException en 4.2.2
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.