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

Inicializar un array dinámico

Estas en el tema de Inicializar un array dinámico en el foro de Java en Foros del Web. Hola a todos: Mi problema es el siguiente, pongamos que tengo la siguiente clase: public class Pelicula { private int anno; private String Titulo; private ...
  #1 (permalink)  
Antiguo 19/12/2011, 05:30
 
Fecha de Ingreso: junio-2007
Mensajes: 298
Antigüedad: 16 años, 10 meses
Puntos: 5
Inicializar un array dinámico

Hola a todos:

Mi problema es el siguiente, pongamos que tengo la siguiente clase:

public class Pelicula {
private int anno;
private String Titulo;
private String Director;
private String Argumento;
}

Y tengo otra clase donde quiero crear un array donde se vayan almacenando las películas, algo así como:

private Pelicula[] pel1=new Pelicula[];

Yo no sé cuántas películas sé van a almacenar, es decir, no puedo inicializar el array por ejemplo a 25, pero al dejarlo así con new Pelicula[] me da error.

¿Cómo puedo inicializar un array dinámico sin ponerle ninguna cantidad?

Muchas gracias
  #2 (permalink)  
Antiguo 19/12/2011, 06:14
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: Inicializar un array dinámico

¿Cómo puedo inicializar un array dinámico sin ponerle ninguna cantidad?
NO SE PUEDE

Para esto existe las Collections (package java.util.*)
__________________
BadProgrammerException!
  #3 (permalink)  
Antiguo 19/12/2011, 07:02
 
Fecha de Ingreso: junio-2007
Mensajes: 298
Antigüedad: 16 años, 10 meses
Puntos: 5
Respuesta: Inicializar un array dinámico

Muchas gracias. Me ha sido muy útil la respuesta.
  #4 (permalink)  
Antiguo 19/12/2011, 10:07
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Inicializar un array dinámico

Puedes usar esto

Collection coleccionPeliculas = new ArrayList();

Para recuperar el elemento en la posición i (una vez lo hayas añadido), tendrías que hacer cast

Pelicula miPelicula = (Pelicula) ColeccionPeliculas[i]:

Si estás trabajando con generics puedes usar tranquilamente estas List

List<Pelicula> miListaPeliculas = new ArrayList<Pelicula>();

Para recuperarlo:

Pelicula miPelicula = miListaPeliculas.get(i);

Esto funciona porque los ArrayList son verdaderamente dinámicos, se autoinicializan sólos. La respuesta de Firuzz es correcta porque un simple Array necesita que le des un tamaño. Si quieres variarlo de tamaño necesitas crear otro y volcar el contenido en el nuevo array. Sin embargo los ArrayList pueden ser tan grandes como se quiera.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: clase, inicializar, jar, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:41.