it-swarm.com.ru

Добавление целых чисел в массив int

Я пытаюсь добавить целые числа в массив int, но Eclipse говорит:

не может вызвать add (int) для типа массива int []

Что совершенно нелогично для меня. Я также пробовал addElement() и addInt(), но они тоже не работают.

public static void main(String[] args) {
    int[] num = new int[args.length];
    for (String s : args){
        int neki = Integer.parseInt(s);
        num.add(neki);

}
13
Rok Dolinar

Чтобы добавить элемент в массив, вам нужно использовать формат:

array[index] = element;

Где array - это массив, который вы объявили, index - позиция, в которой будет храниться элемент, а element - элемент, который вы хотите сохранить в массиве.

В вашем коде вы хотели бы сделать что-то вроде этого:

int[] num = new int[args.length];
for (int i = 0; i < args.length; i++) {
    int neki = Integer.parseInt(args[i]);
    num[i] = neki;
}

Метод add() доступен для Collections, например List и Set. Вы можете использовать его, если используете ArrayList (см. документацию ), например:

List<Integer> num = new ArrayList<>();
for (String s : args) {
    int neki = Integer.parseInt(s);
    num.add(neki);
}
15
Anderson Vieira

Массив не имеет метода добавления. Вы присваиваете значение элементу массива с помощью num[i]=value;.

public static void main(String[] args) {
    int[] num = new int[args.length];
    for (int i=0; i < num.length; i++){
      int neki = Integer.parseInt(args[i]);
      num[i]=neki;
    }
}
5
Eran

Массив имеет фиксированную длину. Вы не можете «добавить» к нему. Вы определяете в начале, как долго это будет.

int[] num = new int[5];

Это создает массив целых чисел, который имеет 5 «сегментов». Каждое ведро содержит 1 целое число. Для начала все это будет 0.

num[0] = 1;
num[1] = 2;

Две строки выше устанавливают первое и второе значения массива равными 1 и 2. Теперь ваш массив выглядит так:

[1,2,0,0,0]

Как видите, вы устанавливаете значения в нем, но не добавляете их до конца.

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

3
George

Вы не можете использовать метод add для массива в Java. 

Чтобы добавить вещи в массив, сделайте это так

public static void main(String[] args) {
int[] num = new int[args.length];
for (int i = 0; i < args.length; i++){
    int neki = Integer.parseInt(s);
    num[i] = neki;

}

Если вы действительно хотите использовать метод add (), рассмотрите возможность использования вместо него ArrayList<Integer>. Это имеет несколько преимуществ - например, он не ограничен максимальным размером, установленным при создании. Вы можете продолжать добавлять элементы до бесконечности. Однако это не так быстро, как массив, так что если вы действительно хотите, чтобы производительность соответствовала массиву. Также требуется, чтобы вы использовали объект Integer вместо примитивных типов int, что может вызвать проблемы. 

Пример ArrayList

public static void main(String[] args) {
    ArrayList<Integer> num = new ArrayList<Integer>();
    for (String s : args){
        Integer neki = new Integer(Integer.parseInt(s));
        num.add(s);
}
2
Davis Broda

Массивы отличаются от ArrayLists, для которых вы можете вызывать add. Сначала вам понадобится индекс. Объявите i перед циклом for. Затем вы можете использовать выражение доступа к массиву, чтобы назначить элемент массиву. 

num[i] = s;
i++;
1
rgettman

у вас есть массив int, который является примитивным типом, примитивный тип не имеет метода add. Вы должны искать Collections.

0
Rafael Reis