publicstaticvoidprintStudent(ArrayListarray){for(inti=0;i
public static void printStudent(ArrayList array){for(int i = 0 ; i < array.size();i++){array.get(i);System.err.println(array.get(i));} Student s = array.get(3);System.out.println(s.getName()+"..."+s.getAge());System.err.println(array.get(4));System.err.println(s);}cn.itcast.demo09.Student@1db9742 i=0cn.itcast.demo09.Student@106d69c i=1cn.itcast.demo09.Student@52e922 i=2cn.itcast.demo09.Student@25154f i=3cn.itcast.demo09.Student@10dea4e i=4cn.itcast.demo09.Student@10dea4e array.get(4) cn.itcast.demo09.Student@25154f s如果把for循环注释了在运行,直接调用集合地址,那么不管我输出哪个索引,地址都不会发生变化,但是取值是正常的,这是为什么?For调用的每个索引一个地址,不用for循环,直接调用的索引地址不变难道不是每个索引都对应一个地址吗
代码错行了 看图片
我用for循环 输出集合每个值对应的地址,发现每个值都对应一个地址
我不经过for语句,直接输出集合每个值对应的地址,发现每个值都对应同一个地址
我不太明白这是为什么,不应该是 什么情况下集合每个值都对应一个地址吗?
展开