尺寸和长度方法的区别?

时间:2013-11-25 12:15:22

标签: java arrays arraylist

.size().length之间有什么区别? .size()仅适用于arraylists而.length仅适用于数组吗?

6 个答案:

答案 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 = 1a.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++) {}