java变量不保存当前列表大小
我这里有一段代码:
List<String> s1 = new ArrayList<String>();
int size = s1.size();
s1.add("A");
s1.add("B");
System.out.println(size);
s1.add("C");
s1.add("D");
System.out.println(size);
这就是输出:
0
0
但它应该是:
2
4
出什么问题了?为什么当我打电话给她时,可变大小不能得到当前列表的大小
谢谢你帮我
# 1 楼答案
要打印正确的大小,您应该在案例中始终使用
s1.size();
。由于列表是可修改的,所以将其存储在局部变量中不会有帮助,除非您有不可修改的列表。因为局部变量不会在列表中每次添加/删除新条目时更新在向列表中添加数据后,应该调用
s1.size();
# 2 楼答案
当你这么做的时候,列表是空的。所以size是一个基本值,不会根据列表的大小自动更新
每次列表更改其大小时,都需要刷新该值
# 3 楼答案
size
包含执行int size = s1.size();
时分配给它的值,即0,因为当时列表为空当列表被修改时,它不会被自动修改。它与列表的大小无关
您确实有一个变量,其值在列表大小更改时更新。这是
ArrayList
类的size
变量,当调用size()
方法时,会得到该变量的值:因此,不需要变量。只需调用
s1.size()
即可获得列表的当前大小