добавление объектов в массив для Java - PullRequest
0 голосов
/ 15 июня 2019

Я новичок в Java, и мне дано задание построить класс "журнал" с массивами "дополнений". Приложения имеют название и стоимость.Я пытаюсь понять, как добавить, скажем, 3 дополнения в массив под «журналом».

Это код для «дополнения»

public class Supplements {
 String Supplement;
 double cost;

public Supplements ()
{
    Supplement="abcdef";
    cost= 10;

}
public Supplements(String sp, double ct )
{
    Supplement = sp;
    cost=ct;
}

public String getSupplement()
{
    return Supplement;
}
public void setSupplement(String sp)
{
  Supplement=sp;
}
public void setcost(double ct)
{
    cost=ct;
}
public double getcost()
{
    return cost;
}
public String toString()
{
    return ("Supplements: "+ Supplement + "\n" + "Weekly cost: "+ cost);
}

И начало "журнала".Предполагается иметь стоимость и массив дополнений (s1 = "abc", 10;, s2 = "def", 11; и т. Д.)

public class Magazine {
double cost;
Supplements[] supplist;

public Magazine ()
{

    cost=20;
   Supplements[] supplist= new Supplements[1];

Мне очень жаль, если это звучит как бред, яне так много опыта с кодированием

Ответы [ 5 ]

2 голосов
/ 15 июня 2019

Массивы имеют фиксированный размер в Java.Вы должны использовать ArrayList для поддержки динамического размера.

0 голосов
/ 15 июня 2019

Я рекомендую вам использовать ArrayList вместо Array, если вам не нужно или нужно использовать Array для этой задачи, если вы должны использовать Array, тогда это должно быть что-то простое, как это:

Supplements sup1 = new Supplements("sup1", 10.0);
Supplements sup2 = new Supplements("sup2", 20.0);
Supplements sup3 = new Supplements("sup3", 30.0);

затем вы просто добавляете в свой массив журналов, но учитываете, что массивы в java имеют фиксированный размер, поэтому предположим, что если он имеет фиксированный размер 1, то вы можете добавить только 1 дополнение, например так:

Supplements[] supList = new Supplements[1];
supList[0]=sup1;

Затем вы устанавливаете этот массив в свой атрибут журнала.

С ArrayList вам не нужно беспокоиться о размере, он динамически увеличивается.

ArrayList<Supplements> supList= new ArrayList<Supplements>();
supplist.add(new Supplements("sup1", 10));
supplist.add(new Supplements("sup2", 20));
supplist.add(new Supplements("sup3", 30));

И так, не стесняйтесь комментировать, если у вас есть какие-либо вопросы.

0 голосов
/ 15 июня 2019

во-первых, это недопустимо Supplements[] supplist= new Supplements[1];, если вы уже объявили Supplements[] supplist;, выдает ошибку повторяющейся переменной


теперь для добавления данных в массив

    Supplements[] supplist= new Supplements[3];
    supplist[0] = new Supplements("abc", 10);
    supplist[1] = new Supplements("def", 20);
    supplist[2] = new Supplements("hij", 30);

и в массивах java имеют фиксированный размер, рекомендуется использовать объект ArrayList вместо массива для поддержки динамического размера. например

ArrayList<Supplements> supplist= new ArrayList<Supplements>();
supplist.add(new Supplements("abc", 10));
supplist.add(new Supplements("def", 20));
supplist.add(new Supplements("hij", 30));

Вы можете добавить динамические Дополнения в свой список.

0 голосов
/ 15 июня 2019

Если вы априори знаете, сколько элементов будет иметь ваш массив, вы можете создать его с помощью:

Supplements[] arr = new Supplements[n];

, где n - это количество элементов, которое он будет иметь.Затем вы можете присвоить ему элементы, используя индексы:

arr[0] = new Supplements("abc", 10);
arr[1] = new Supplements("def", 11);

Обратите внимание, что 0 и 1 являются индексами.Вы можете получить доступ до n-1, потому что ваш массив имеет размер n, а индексы начинаются с 0.

Если вы не знаете, сколько у вас будет элементов, вам следует рассмотреть возможность использования структур данных из JavaCollections, как LinkedList и ArrayList.

0 голосов
/ 15 июня 2019

Сделай что-нибудь подобное

Supplements s1 = new Supplements("abc", 10);
Supplements s2 = new Supplements("def", 20);
Supplements s3 = new Supplements("hij", 30);

Supplements[] supplist= new Supplements[3];
supplist[0] = s1;
supplist[1] = s2;
supplist[2] = s3;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...