你如何计算java中数组的元素

说我有arrays

int theArray = new int[20]; 

数组的长度是20,但计数是0.我怎么能得到计数?

“伯爵”是什么意思? 具有非零值的元素数量? 你只需要数数吧。

该数组与明确设置为零值的数组之间没有区别 。 例如,这些数组无法区分:

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

Java中的数组总是有固定的大小 – 通过length字段访问。 没有“当前使用的arrays数量”的概念。

迭代它并计算非null的元素:

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

这可以通过使用for来实现:每个循环等等,但这是jist。

无论是那个,还是保留一个计数器,每当你添加一个元素时,都要增加它。

我认为你可能想要的是一个ArrayList而不是一个数组。 这将允许您:

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

输出将为0

然后,您可以将内容添加到列表中,它将跟踪您的计数。 (它也会根据您的需要增加后备存储的大小。)

Java没有对数组中使用的元素进行“计数”的概念。

为此,Java使用ArrayListList是在一个数组之上实现的,只要JVM决定它不够大(或者有时它太大),它就会被resize。

要获得计数,可以使用mylist.size()来确保使用mylist.ensureCapacity(20)的容量(基础数组后备mylist.ensureCapacity(20) 。 要消除额外容量,请使用mylist.trimToSize()

没有内置function。 此计数是整个用户特定的。 维护柜台或其他什么。

  1. 你的代码不会编译,应该是int [] theArray = new int[20]; ;
  2. 你可以得到数组长度为theArray.length ;
  3. 对于基本类型,数组将使用默认值初始化(0表示int)。
  4. 你可以使它成为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()方法将为您提供当前的元素数。

如果您希望有一个arrays,您将不会分配所有元素,您将必须自己进行簿记,以确保通过其他变量放置了多少元素。 如果你想避免这样做同时获得一个可以在初始实例化后增加容量的“数组”,你可以创建一个ArrayList

 ArrayList theArray = new ArrayList(); 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); ? 因为这就像你正在寻找的那样。