Скажем, у меня есть массив
int theArray = new int[20];
Длина массива равна 20, но счет равен 0. Как я могу получить счет?
Скажем, у меня есть массив
int theArray = new int[20];
Длина массива равна 20, но счет равен 0. Как я могу получить счет?
Что вы подразумеваете под "графом"? Число элементов с ненулевым значением? Вам просто нужно их подсчитать.
Нет никакого различия между этим массивом и тем, который явно задан с нулевыми значениями. Например, эти массивы неразличимы:
int[] x = { 0, 0, 0 };
int[] y = new int[3];
Массивы на Java всегда имеют фиксированный размер - доступ через поле length
. Нет понятия "количество используемого массива".
Итерации через него и подсчет элементов, которые не являются нулевыми:
int counter = 0;
for (int i = 0; i < theArray.length; i ++)
if (theArray[i] != null)
counter ++;
Это можно аккуратно использовать, используя для: каждый цикл и т.д., но это и есть jist.
Либо это, либо сохранить счетчик, и всякий раз, когда вы добавляете элемент, увеличьте его.
Я думаю, что вам может понадобиться ArrayList<Integer>
вместо массива. Это позволит вам:
ArrayList<Integer> arr = new ArrayList<Integer>(20);
System.out.println(arr.size());
Выход будет 0
.
Затем вы можете добавить вещи в список, и он будет отслеживать счет для вас. (Он также будет увеличивать размер резервного хранилища по мере необходимости.)
В Java нет понятия "счет" используемых элементов в массиве.
Чтобы получить это, Java использует ArrayList
. List
реализуется поверх массива, который изменяется каждый раз, когда JVM решает, что он недостаточно велик (или иногда, когда он слишком велик).
Чтобы получить счетчик, вы используете mylist.size()
, чтобы обеспечить емкость (базовую поддержку массива), которую вы используете mylist.ensureCapacity(20)
. Чтобы избавиться от дополнительной емкости, вы используете mylist.trimToSize()
.
Для этого нет встроенных функций. Этот счет в целом зависит от пользователя. Поддерживайте счетчик или что-то еще.
int [] theArray = new int[20];
;theArray.length
;Вы можете сделать это Integer [] theArray = new Integer[20];
и затем подсчитать инициализированные члены, как это делает код:
public int count(Object [] array) {
int c = 0;
for(Object el: array) { if(el != null) c++; }
return c;
}
Обратите внимание, что этот ответ не о том, почему вам может понадобиться это, и как лучше всего делать то, что вы хотите.
При определении массива вы выделяете блок памяти для хранения всех элементов, которые вы хотите иметь в массиве.
Это будет иметь значение по умолчанию, в зависимости от типа типов элементов массива.
То, что вы не можете сделать, это узнать количество элементов, которые вы заполнили, за исключением отслеживания его в вашем собственном коде.
Вы можете использовать a для каждого цикла и подсчитать количество значимых значений целого числа. Вы также можете использовать ArrayList, который будет отслеживать вашу миссию для вас. Каждый раз, когда вы добавляете или удаляете объекты из списка, он автоматически обновляет счетчик. Вызов метода size() даст вам текущее количество элементов.
Если вы хотите иметь массив, в котором вы не будете распределять все элементы, вам нужно будет сделать свою собственную учетную запись, чтобы убедиться, сколько элементов вы разместили в ней через какую-либо другую переменную. Если вы хотите избежать этого, одновременно получая "Массив", который может наращивать емкости после его первоначального создания, вы можете создать ArrayList
ArrayList<Integer> theArray = new ArrayList<Integer>();
theArray.add(5); // places at index 0
theArray.size(); // returns length of 1
int answer = theArray.get(0); // index 0 = 5
Не забудьте импортировать его в верхней части файла:
import java.util.ArrayList;
Если вы предположите, что 0 не является допустимым элементом в массиве, тогда следующий код должен работать:
public static void main( String[] args )
{
int[] theArray = new int[20];
theArray[0] = 1;
theArray[1] = 2;
System.out.println(count(theArray));
}
private static int count(int[] array)
{
int count = 0;
for(int i : array)
{
if(i > 0)
{
count++;
}
}
return count;
}
int theArray[] = new int[20];
System.out.println(theArray.length);
Разве это не просто: System.out.println(Array.length);
? Потому что это то, что кажется, что вы ищете.