Я хочу задать вопрос о Java. У меня есть пользовательский класс объекта, ученик, у которого есть 2 члена данных, имя и идентификатор. И в другом классе я должен объявить этот объект [], (например, student stu[?];
). Тем не менее, я не знаю размер массива объектов. Можно ли объявить массив объектов, но не знать размер? спасибо.
Как объявить массив динамических объектов в Java?
Ответ 1
Пользователь ArrayList
. Он будет автоматически расширяться при добавлении новых элементов. Позже вы можете преобразовать его в массив, если вам нужно.
В качестве другого параметра (не уверен, что именно вы хотите), вы можете объявить поле Object[]
и не инициализировать его немедленно.
Ответ 2
Как вы, вероятно, уже выяснили, регулярные массивы на Java имеют фиксированный размер (размер массива не может быть изменен), поэтому для динамического добавления элементов в массив вам нужен массив с изменяемым размером. В Java изменяемые размеры массивов реализуются как класс ArrayList (java.util.ArrayList
).
Простой пример его использования:
import java.util.ArrayList;
// Adds a student to the student array list.
ArrayList<Student> students = new ArrayList<Student>();
students.add(new Student());
Скобки <Student>
(функция, называемая generics в Java) необязательны; однако вы должны их использовать. В основном они ограничивают тип объекта, который можно сохранить в списке массивов, поэтому вы не можете хранить объекты String в массиве, полном объектов Integer.
Ответ 3
Невозможно, мы должны указать размер массива при объявлении массива объектов;
-
один способ объявить массив объектов
student st[]; st=new student[]3;
-
второй способ
student st[]=new student[5];
В обоих случаях не создаются никакие объекты, только пространство выделяется для массива.
st=new student[1];
это создаст новый объект;
Ответ 4
Вы можете объявить как: Student stu[]=null;
и создать его с фиксированным размером: stu[]=new Student[10]
, пока не сможете узнать размер. Если вам нужно использовать массив.