.size()
和.length
之间有什么区别? .size()
仅适用于arraylists而.length
仅适用于数组吗?
答案 0 :(得分:48)
size()
是java.util.Collection
中指定的方法,然后由标准库中的每个数据结构继承。 length
是任何数组上的字段(数组是对象,您通常不会看到该类),length()
是java.lang.String
上的一个方法,它只是一个薄的包装器反正char[]
。
也许通过设计,数组和字符串是不可变的,并且所有顶级Collection子类都是可变的。所以你看到“长度”你知道它是恒定的,而你看到“大小”的地方则不然。
答案 1 :(得分:23)
length是常量,用于查找数组存储容量而不是数组中元素的数量
示例:
int a[] = new int[5]
a.length
总是返回5,称为数组的容量,因此length总是返回CAPACITY。但是
"数组中的元素数量称为size"
示例:
int a[] = new int[5]
a[0] = 10
将导致a.size = 1
和a.length = 5
。
size()
适用于集合,length
适用于java中的数组
答案 2 :(得分:2)
length variable:
在Java中,array(不是java.util.Array)是语言本身的预定义类。为了找到数组的元素,设计者使用了长度变量(length是预定义类中的字段成员)。它们必须赋予length()本身以使Java具有一致性;但没有。原因在于性能,执行长度变量比调用方法length()更快。这就像比较两个字符串与==和equals()。 equals()是一个方法调用,它比执行==运算符需要更多的时间。
size() method:
用于查找集合类中存在的元素数。它在java.util.Collection接口中定义。
答案 3 :(得分:1)
基于语法,我假设它是C语言的后代语言。根据我所看到的,length
用于简单的集合项,如数组,在大多数情况下,它是属性。
size()
是一个函数,用于动态集合对象。但是,出于所有使用目的,您不会发现使用其中任何一个的结果有任何差异。在大多数实现中,size只返回length属性。
答案 4 :(得分:1)
.length
是一个字段,包含容量(不包括当前数组中包含的元素数) 。
length()
是字符串(以及其他)使用的方法,它返回字符串中个字符的数量强>;对于字符串,容量和包含元素(字符)的数量具有相同的值。
size()
是由 Collection的所有成员(列表,集合,堆栈等)实现的方法。它返回元素数量(没有容量;某些集合甚至没有定义的容量)。答案 5 :(得分:0)
我打赌(没有指定语言)size()
方法返回length
属性。
但有效的for
循环应如下所示:
for (int i = 0; i < values.length; i++) {}