Подтвердить что ты не робот

Как объявить массив динамических объектов в Java?

Я хочу задать вопрос о Java. У меня есть пользовательский класс объекта, ученик, у которого есть 2 члена данных, имя и идентификатор. И в другом классе я должен объявить этот объект [], (например, student stu[?];). Тем не менее, я не знаю размер массива объектов. Можно ли объявить массив объектов, но не знать размер? спасибо.

4b9b3361

Ответ 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], пока не сможете узнать размер. Если вам нужно использовать массив.