Equivalente a push () o pop () para arrays?

Estoy tratando de agregar, eliminar y hacer referencia a elementos de una matriz que crear en mi archivo principal de java, pero estoy teniendo problemas para averiguar la sintaxis correcta. En actionscript tienen push () y pop () para agregar y quitar elementos en una matriz, ¿hay un equivalente en android?

En Java, una matriz tiene un tamaño fijo (después de la inicialización), lo que significa que no puede agregar o eliminar elementos de una matriz.

int[] i = new int[10]; 

El fragmento anterior significa que la matriz de enteros tiene una longitud de 10. No es posible agregar un entero undécimo, sin volver a asignar la referencia a una nueva matriz, como el siguiente:

 int[] i = new int[11]; 

En Java, el paquete java.util contiene todo tipo de estructuras de datos que pueden manejar la adición y eliminación de elementos de colecciones de tipo array. La estructura de datos clásica Stack tiene métodos para push y pop.

Para aquellos que no tienen tiempo para refactorizar el código para reemplazar arrays con Collection s (por ejemplo ArrayList ), hay una alternativa. A diferencia de Collection s, la longitud de una matriz no se puede cambiar, pero la matriz se puede reemplazar, como esto:

 array = push(array, item); 

Los inconvenientes son que

  • Toda la matriz tiene que ser copiada cada vez que se pulsa, y
  • El Object matriz original no se cambia, por lo que tiene que actualizar la variable (s) según corresponda.

Aquí está el método push para String :
(Puede crear varios métodos de push , uno para String , uno para int , etc.)

 private static String[] push(String[] array, String push) { String[] longer = new String[array.length + 1]; for (int i = 0; i < array.length; i++) longer[i] = array[i]; longer[array.length] = push; return longer; } 

Esta alternativa es más eficiente, más corta y más difícil de leer:

 private static String[] push(String[] array, String push) { String[] longer = new String[array.length + 1]; System.arraycopy(array, 0, longer, 0, array.length); longer[array.length] = push; return longer; } 

Puede utilizar LinkedList. Tiene métodos peek, poll y oferta.

La biblioteca Underscore-java contiene métodos push (valores), pop (), shift () y unshift (valores).

Ejemplo de código:

 import com.github.underscore.lodash.$: List<String> strings = Arrays.asList("one", "two", " three"); List<String> newStrings = $.push(strings, "four", "five"); // ["one", " two", "three", " four", "five"] String newPopString = $.pop(strings).fst(); // " three" String newShiftString = $.shift(strings).fst(); // "one" List<String> newUnshiftStrings = $.unshift(strings, "four", "five"); // ["four", " five", "one", " two", "three"] 
  • ¿Por qué el método onNewIntent (intento de intención) es llamado dos veces?
  • ¿Cuál es un tiempo de espera apropiado para las conexiones en dispositivos móviles?
  • Actualizar variables estáticas en java
  • ¿Cómo se puede obtener una referencia a la clase externa de la clase interna que no utiliza el nombre de clase exterior?
  • Obtener ubicación de la imagen - Cámara Phonegap
  • FTPClient corrompe las imágenes mientras se sube al servidor ftp en android?
  • Android: Java: usando un recurso de cadena en un Toast
  • Java: Debería usar constructor para hacer algo más que la inicialización de las variables
  • Cómo depurar la pérdida de memoria donde las instancias de excepción en el volcado heap no tienen referencias entrantes?
  • Instalar paquetes de python en android
  • AVD no dejará de cerrar
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.