RT Journal Article T1 Getting the most from map data structures in Android A1 Saborido Infantes, Rubén A1 Morales, Rodrigo A1 Khomh, Foutse A1 Guéhéneuc, Yann-Gaël A1 Antoniol, Giuliano K1 Estructuras de datos (Informática) AB A map is a data structure that is commonly used to store data as key–value pairs and retrieve data as keys, values, or key–value pairs. Although Java offers different map implementation classes, Android SDK offers other implementations supposed to be more efficient than HashMap: ArrayMap and SparseArray variants (SparseArray, LongSparseArray, SparseIntArray, SparseLongArray, and SparseBooleanArray). Yet, the performance of these implementations in terms of CPU time, memory usage, and energy consumption is lacking in the official Android documentation; although saving CPU, memory, and energy is a major concern of users wanting to increase battery life. Consequently, we study the use of map implementations by Android developers in two ways. First, we perform an observational study of 5713 Android apps in GitHub. Second, we conduct a survey to assess developers’ perspective on Java and Android map implementations. Then, we perform an experimental study comparing HashMap, ArrayMap, and SparseArray variants map implementations in terms of CPU time, memory usage, and energy consumption. We conclude with guidelines for choosing among the map implementations: HashMap is preferable over ArrayMap to improve energy efficiency of apps, and SparseArray variants should be used instead of HashMap and ArrayMap when keys are primitive types. PB Springer YR 2018 FD 2018 LK https://hdl.handle.net/10630/34061 UL https://hdl.handle.net/10630/34061 LA eng NO Saborido, R., Morales, R., Khomh, F. et al. Getting the most from map data structures in Android. Empir Software Eng 23, 2829–2864 (2018). https://doi.org/10.1007/s10664-018-9607-8 DS RIUMA. Repositorio Institucional de la Universidad de Málaga RD 20 ene 2026