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

Как вы подсчитываете элементы массива в java

Скажем, у меня есть массив

int theArray = new int[20];

Длина массива равна 20, но счет равен 0. Как я могу получить счет?

4b9b3361

Ответ 1

Что вы подразумеваете под "графом"? Число элементов с ненулевым значением? Вам просто нужно их подсчитать.

Нет никакого различия между этим массивом и тем, который явно задан с нулевыми значениями. Например, эти массивы неразличимы:

int[] x = { 0, 0, 0 };
int[] y = new int[3];

Массивы на Java всегда имеют фиксированный размер - доступ через поле length. Нет понятия "количество используемого массива".

Ответ 2

Итерации через него и подсчет элементов, которые не являются нулевыми:

int counter = 0;
for (int i = 0; i < theArray.length; i ++)
    if (theArray[i] != null)
        counter ++;

Это можно аккуратно использовать, используя для: каждый цикл и т.д., но это и есть jist.

Либо это, либо сохранить счетчик, и всякий раз, когда вы добавляете элемент, увеличьте его.

Ответ 3

Я думаю, что вам может понадобиться ArrayList<Integer> вместо массива. Это позволит вам:

ArrayList<Integer> arr = new ArrayList<Integer>(20);
System.out.println(arr.size());

Выход будет 0.

Затем вы можете добавить вещи в список, и он будет отслеживать счет для вас. (Он также будет увеличивать размер резервного хранилища по мере необходимости.)

Ответ 4

В Java нет понятия "счет" используемых элементов в массиве.

Чтобы получить это, Java использует ArrayList. List реализуется поверх массива, который изменяется каждый раз, когда JVM решает, что он недостаточно велик (или иногда, когда он слишком велик).

Чтобы получить счетчик, вы используете mylist.size(), чтобы обеспечить емкость (базовую поддержку массива), которую вы используете mylist.ensureCapacity(20). Чтобы избавиться от дополнительной емкости, вы используете mylist.trimToSize().

Ответ 5

Для этого нет встроенных функций. Этот счет в целом зависит от пользователя. Поддерживайте счетчик или что-то еще.

Ответ 6

  • Ваш код не будет компилироваться, он должен быть int [] theArray = new int[20];;
  • Вы можете получить длину массива как theArray.length;
  • Для примитивных типов массив будет инициализирован значениями по умолчанию (0 для int).
  • Вы можете сделать это Integer [] theArray = new Integer[20]; и затем подсчитать инициализированные члены, как это делает код:

    public int count(Object [] array) {
        int c = 0;
        for(Object el: array) { if(el != null) c++; }
            return c;
    }
    

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

Ответ 7

При определении массива вы выделяете блок памяти для хранения всех элементов, которые вы хотите иметь в массиве.

Это будет иметь значение по умолчанию, в зависимости от типа типов элементов массива.

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

Ответ 8

Вы можете использовать a для каждого цикла и подсчитать количество значимых значений целого числа. Вы также можете использовать ArrayList, который будет отслеживать вашу миссию для вас. Каждый раз, когда вы добавляете или удаляете объекты из списка, он автоматически обновляет счетчик. Вызов метода size() даст вам текущее количество элементов.

Ответ 9

Если вы хотите иметь массив, в котором вы не будете распределять все элементы, вам нужно будет сделать свою собственную учетную запись, чтобы убедиться, сколько элементов вы разместили в ней через какую-либо другую переменную. Если вы хотите избежать этого, одновременно получая "Массив", который может наращивать емкости после его первоначального создания, вы можете создать 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;

Ответ 10

Если вы предположите, что 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;
   }

Ответ 11

int theArray[] = new int[20];
System.out.println(theArray.length);

Ответ 12

Разве это не просто: System.out.println(Array.length);? Потому что это то, что кажется, что вы ищете.