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?
- ¿Cómo acceder a "Activity.this" en Kotlin?
- Android - Implementación de mapas v2 en el cajón de navegación
- Envío de una imagen de Matlab a una tableta Android
- Error de Android al llenar Array dentro de AsyncTask
- Cómo hacer una superposición al compartir en la aplicación en android?
- Consulta SQLite muy lenta en Android
- Java .equals () devuelve false cuando las cadenas son iguales
- El método getString (int) no está definido para el tipo Apps
- Java Floating Point Precision Issue
- Android de programación de audio pesadilla - soundpool, audiotrack arrghh?
- Cómo cerrar la actividad sin terminar?
- Widget de la pestaña siempre en los alfabetos de mayúsculas en Android 4.0
- Obtenga la hora actual del sistema y después de que quiera Añadir 30 minutos en ese tiempo
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.
- Cómo obtener colores aleatorios usando una clase aleatoria?
- Cómo obtener distancia recta entre dos ubicación en android?