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?
- Emulador de Android no se inicia
- Android AsyncTaskLoader no inicia loadInBackground?
- ¿Cómo ejecutar pruebas filtradas con etiquetas con pepino-jvm y gradle?
- Cómo ejecutar "callOnClick ()" para Android API 8?
- El inicio de sesión de Twitter de Android no funciona con Fabric SDK - La devolución de llamada no debe ser nula
- ¿Por qué RecyclerView no tiene onItemClickListener ()?
- Android: Lectura desde un archivo (Openfileinput)
- Cómo manejar el retrato de Android y el paisaje en el código?
- ¿Cómo puedo habilitar afirmaciones a nivel de idioma en Android Runtime (ART)?
- Cambiar la imagen del contacto a una foto grande a través de PHOTO_FILE_ID en Android
- Android: ¿Cómo iniciar una actividad mediante el botón?
- Mapas de calle abierta (osmdroid) muestra los azulejos grises no mapa en PC
- Error de PorterDuff.Mode de Android: PorterDuff no se puede resolver con una variable
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?