Добавление целых чисел в массив 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);
}
Ответы
Ответ 1
Чтобы добавить элемент в массив, вам нужно использовать формат:
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);
}
Ответ 2
В массиве нет метода добавления. Вы присваиваете значение элементу массива с 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;
}
}
Ответ 3
Массив имеет фиксированную длину. Вы не можете "добавить" к нему. В начале вы определяете, как долго это будет.
int[] num = new int[5];
Это создает массив целых чисел, который имеет 5 'ведра'. Каждое ведро содержит 1 целое число. Для начала все это будет 0
.
num[0] = 1;
num[1] = 2;
Две строки выше устанавливают первое и второе значения массива на 1
и 2
. Теперь ваш массив выглядит так:
[1,2,0,0,0]
Как вы видите, вы устанавливаете в нем значения, вы не добавляете их в конец.
Если вы хотите создать список номеров, которые вы добавляете, вы должны использовать ArrayList.
Ответ 4
Вы не можете использовать метод 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);
}
Ответ 5
Массивы отличаются от ArrayList
s, на которые вы могли бы позвонить add
. Сначала вам понадобится индекс. Объявите i
перед циклом for
. Затем вы можете использовать выражение доступа к массиву для назначения элемента массиву.
num[i] = s;
i++;
Ответ 6
у вас есть массив int
, который является примитивным типом, примитивный тип не имеет метода add. Вы должны искать Collections
.