Quiero hacer una pregunta acerca de Java. Tengo una clase de objeto definida por el usuario, estudiante, que tiene 2 miembros de datos, nombre e id. Y en otra clase, tengo que declarar ese objeto [], (por ejemplo, student stu[?];
). Sin embargo, no sé el tamaño de la matriz de objetos. ¿Es posible declarar una matriz de objetos pero no conoce el tamaño? gracias.¿Cómo declarar una matriz de objetos dinámicos en Java?
Respuesta
Usuario ArrayList
en su lugar. Se expandirá automáticamente a medida que agregue nuevos elementos. Más tarde puede convertirlo en matriz, si lo necesita.
Como otra opción (no estoy seguro de qué es exactamente lo que quiere), puede declarar el campo Object[]
y no inicializarlo inmediatamente.
Como probablemente ya haya descubierto, las matrices normales en Java son de tamaño fijo (no se puede cambiar el tamaño de una matriz), por lo que para agregar elementos dinámicamente a una matriz, necesita una matriz redimensionable. En Java, las matrices de tamaño variable se implementan como la clase ArrayList (java.util.ArrayList
). Un simple ejemplo de su uso:
import java.util.ArrayList;
// Adds a student to the student array list.
ArrayList<Student> students = new ArrayList<Student>();
students.add(new Student());
Los <Student>
corchetes (una característica llamada genéricos en Java) son opcionales; sin embargo, debes usarlos. Básicamente restringen el tipo de objeto que puedes almacenar en la lista de arreglos, por lo que no terminas almacenando objetos String en una matriz llena de objetos enteros.
Las matrices en Java no son inmutable. Puede hacer fácilmente 'myArray [2] = 13', cambiando así la matriz. ¿Quizás quisiste decir que su tamaño no se puede cambiar? –
Sí, eso es lo que quise decir, gracias por aclarar eso. Lo aclararé en mi respuesta. – agentbanks217
Puede declarar como: Student stu[]=null;
, y crearlo con tamaño fijo: stu[]=new Student[10]
hasta que pueda conocer el tamaño. Si tiene que usar matriz.
No es posible, debemos especificar el tamaño de la matriz al declarar la matriz de objetos;
una forma de declarar matriz de objetos
student st[]; st=new student[]3;
segunda forma
student st[]=new student[5];
en ambos casos no se crean objetos sólo el espacio se asigna para la matriz.
st=new student[1];
esto creará un nuevo objeto;
si el estudiante es una clase debe llamar a Student con Capital S. –
- 1. Declarar una matriz de objetos que contienen objetos
- 2. ¿Tamaños de matriz dinámicos de Java?
- 3. Cómo ordenar una lista con objetos dinámicos
- 4. serialización de objetos dinámicos
- 5. ¿Cómo elimino objetos de una matriz en Java?
- 6. ¿Cómo declaras una matriz de objetos en Java?
- 7. En Java, ¿cómo se recoge una matriz de objetos basura?
- 8. ¿Cómo declarar elementos de matriz volátiles en Java?
- 9. ¿Cómo puedo declarar una propiedad de matriz?
- 10. cómo declarar dinámicamente una matriz de objetos con un constructor en C++
- 11. Cómo declarar una constante en Java
- 12. ¿Cómo generar nombres de objetos dinámicos de C++?
- 13. Declarar una LinkedList en Java
- 14. Declarar una matriz de objetos en un contexto de frijol de primavera
- 15. Objetos Javascript: nombres variables dinámicos?
- 16. ¿Puede declarar una matriz constante en VBScript?
- 17. ¿Cómo declarar una matriz 2D de tamaño variable en C?
- 18. ¿Cómo declarar una matriz de escalares asignables en Fortran?
- 19. php cómo serializar una matriz de objetos?
- 20. ¿Cómo pasar objetos dinámicos a una función NUnit TestCase?
- 21. Cómo pasar la matriz de objetos como parámetro en Java
- 22. ¿Cómo hacer que IBOutlet salga de una matriz de objetos?
- 23. C# 4.0 Implícitamente Typed objetos dinámicos
- 24. Cómo declarar una matriz de ceros en Python (o una matriz de cierto tamaño)
- 25. ¿Cómo declarar e iterar una matriz en XSLT?
- 26. En Python ¿Cómo puedo declarar una matriz dinámica?
- 27. Consultar una matriz de objetos
- 28. ¿Cómo se ordena una matriz de objetos?
- 29. ¿Es posible declarar una variable de 1 bit en Java?
- 30. delete [] una matriz de objetos
-1: Sin código de ejemplo. Prefiero esta respuesta porque ponen un poco de esfuerzo y realmente dieron suficiente información que no requería más búsquedas después de leer su respuesta: http://stackoverflow.com/a/3887507/901641 – ArtOfWarfare