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 la base de datos SQLite dentro de un archivo zip - android
- Android Studio no encuentra com.android.support:support-v4:19.1.0
- ¿Cómo almacenar varios tipos de datos en una matriz?
- Excepción de tiempo de ejecución de la biblioteca de persistencia de habitación al llamar al método Rooms inMemoryBuilder
- ¿Cómo puedo añadir un submódulo java gradle a mi módulo Android?
- Android / java Sqlite: ¿Cómo recuperar la fecha máxima?
- Android.os.NetworkOnMainThreadException usando rxjava en android
- ¿Cómo puedo colocar dos botones al lado de una imagen en la parte inferior del botón?
- Cómo codificar un símbolo de Euro en strings.xml en los archivos de android XML
- Flujo de trabajo de desarrollo de aplicaciones Android más eficiente?
- Deshabilitar vínculos de WebView funciona en el emulador pero no en el dispositivo
- Cómo convertir milisegundos a formato de fecha en android?
- Android permiso de creación de base de datos
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?