Foros del Web » Programación para mayores de 30 ;) » Java »

Añadir a un array

Estas en el tema de Añadir a un array en el foro de Java en Foros del Web. Hola, Estoy programando en Android (aprendiendo) y tengo la siguiente duda, tengo dos tipos de array: names = new ArrayList<String>(); names.add("Alejandro"); names.add("Fernando"); names.add("Rubén"); int[] images ...
  #1 (permalink)  
Antiguo 14/12/2016, 14:24
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 11 años, 10 meses
Puntos: 0
Añadir a un array

Hola,

Estoy programando en Android (aprendiendo) y tengo la siguiente duda, tengo dos tipos de array:

names = new ArrayList<String>();
names.add("Alejandro");
names.add("Fernando");
names.add("Rubén");

int[] images = {R.drawable.ic_strawberry_web, R.drawable.ic_orange_web, R.drawable.ic_cherry_web};

Para añadir un campo al primer array se hace de la siguiente forma:
this.names.add("Antonio");

¿Cómo se haría para hacerlo en en segundo array?
  #2 (permalink)  
Antiguo 16/12/2016, 06:22
 
Fecha de Ingreso: diciembre-2011
Ubicación: Crespo - Entre Rios
Mensajes: 155
Antigüedad: 5 años, 4 meses
Puntos: 24
Respuesta: Añadir a un array

podes probar (yo no lo probé):

Código Java:
Ver original
  1. int[] nuevoArreglo= Arrays.copyOf(arregloActual, arregloActual.length + 1);
  2. nuevoArreglo[nuevoArreglo.length - 1]= valorDelNuevoElemento;

Igualmente te recomiendo que uses alguna colección, como en tu primer caso.

El código que te mostré ahí va a crear una nueva variable durante el proceso, lo que conlleva a ocupar más memoria (escasa en dispositivos móviles). Va a ser un problema si tu arreglo es grande.

Otra ventaja de utilizar la primer forma es que, te brinda muchos métodos ya testeados y eficientes para manipular la colección sin que te importe que tipo de dato contienen.

Saludos.
  #3 (permalink)  
Antiguo 21/12/2016, 01:20
 
Fecha de Ingreso: febrero-2011
Mensajes: 651
Antigüedad: 6 años, 2 meses
Puntos: 76
Respuesta: Añadir a un array

Si tienes un array de 3 posiciones, no puedes añadir otro elemento. Un array no es dinámico.

- O creas el array para las posiciones que necesitarás.
- O creas un nuevo array más grande partiendo del tamaño que sabes que tienes.
- O lo pasas todo a una lista, añades lo que necesites y lo pasas de nuevo a un array List.toArray()

Saludos



La zona horaria es GMT -6. Ahora son las 08:55.