java集合长度差别

问题遇到的现象和发生背景

为什么查看系统中 System.out.println(Stu.size());
System.out.println(t.getLong());
输出的结果不一样,一个是2,一个是0;我想在别的类中得到该集合的长度


 //学生查看系统
//新建集合
    public ArrayList<Student> Stu = new ArrayList<> ();
    
    //为什么我在别的类中调用这个函数,读不出集合个数,都是为0
     public int getLong() {
         return  Stu.size();
     }


![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/464248889966193.png "#left")

         public static void findStudent(ArrayList Stu) {
             System.out.println("学号\t姓名");
             Student t=new Student();
             System.out.println(Stu.size());//这
             System.out.println(t.getLong());//这
             for(int i=0;iget(i);
                 
                System.out.println(s.getID()+ "\t" + s.getName());
             }
         }

用代码块功能插入代码,请勿粘贴截图

img

因为别的类调用创建的是新对象,所以长度为0

System.out.println(Stu.size()); 这里的Stu是你函数传进来的参数Stu
System.out.println(t.getLong());这里的t是新new出来的,还没有添加数据,所以是0
两个Stu不是一回事。

img

stu在哪个类,getlong和findstudent又在哪个类呢?

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632