Java 对象数组中元素的大小或数量?在爪哇?

Java 对象数组中元素的大小或数量?在爪哇?,java,arrays,object,Java,Arrays,Object,前。 学生[]存储=新学生[10]; 初始化后,除了设置计数器外,是否还有其他方法或方法可以返回创建的对象数?如果使用数组,数组大小是固定的,因此storage.length将始终提供数组大小。最后,您将执行此操作以获得实例化对象的数量: for(Student s : storage){ if (s != null) count ++; } 第一次进近: 但是,如果将创建的对象存储在列表中。您只需通过以下方式获取对象的数量:list.size() 每次实例化新的学生对

前。 学生[]存储=新学生[10];
初始化后,除了设置计数器外,是否还有其他方法或方法可以返回创建的对象数?

如果使用数组,数组大小是固定的,因此storage.length将始终提供数组大小。最后,您将执行此操作以获得实例化对象的数量:

for(Student s : storage){
    if (s != null)
        count ++;
}
第一次进近:

但是,如果将创建的对象存储在列表中。您只需通过以下方式获取对象的数量:
list.size()

每次实例化新的学生对象时,都会调用学生构造函数,因此会自动更新所创建对象的数量

new Student("Alice");
new Student("Bob");
new Student("Carol");
System.out.println(Student.getStudCreated());  //Print num of Student obj instantiated.

3将被打印,因为构造函数被调用了3次。

storage.length
..什么对象的数量?yoylu认为该方法在幕后会做什么?@Square root当你说“Counter”时,你能详细说明一下吗?你是指循环中的计数器还是构造函数中的计数器?你将全局计数器设置为零。然后每次初始化对象时,计数器都会增加。无论是在循环中还是在构造函数中,或者不使用该行代码,您都不会。在第二种方法中,增量应该在
Student.class
上的同步块中,只是为了安全起见。@平方根如果我的解决方案解决了您的问题,您可以通过单击我答案旁边的
勾选
接受我的解决方案。如果您的意思是投票,我做到了,但上面说我至少要有15个我没有的名声yet@Square-root Not upvote,您仍然可以通过单击upvote按钮下方的空心按钮来接受解决方案。作为回报,你获得2次重复。不管你现在有多少代表权。
class Student{
    private static int studCreated = 0;

    public Student(){
        studCreated ++;   //Counts automatically
    }
    //Other constructors not shown here

    public static int getStudCreated(){
        return studCreated;
    }
}
new Student("Alice");
new Student("Bob");
new Student("Carol");
System.out.println(Student.getStudCreated());  //Print num of Student obj instantiated.