【发布时间】:2018-02-14 20:11:30
【问题描述】:
我在 Stack Overflow 上找到了这个答案:
length 是常数,用于找出数组的存储容量,而不是数组中的元素个数
例子:
int a[] = new int[5]
a.length总是返回 5 这称为容量 数组,所以长度总是返回容量。但是"数组中元素的个数称为大小"
例子:
int a[] = new int[5] a[0] = 10将导致
a.size = 1和a.length = 5。
size()适用于集合,length适用于 java 中的数组
(Difference between size and length methods?, 2017-09-06)
由于这个答案获得了 5 票赞成,我认为它是正确的。但实际上 Java 中的数组没有 size 属性。我知道 ArrayLists 有一种方法。但是,如果使用普通数组,a.size 怎么可能等于 1?我错过了什么吗?
【问题讨论】:
-
答案并不是说数组有
size方法。用户只是说数组的大小为 1。用户特别提到“size与集合一起使用”,如列表中所示。用户没有错,可能有点混乱但没有错。 -
@tima:很抱歉,但答案是正是。我引用:将导致
a.size= 1 和a.length= 5。(这里,a是一个数组。) -
@NPE 在我看来它不是实际代码,而只是一个表达式,但我明白为什么可以这样理解它
-
作者可能只是选择了一个令人困惑的表示。
-
你不应该混淆正确性和赞成票。通常情况下,赞成的答案是完全错误的。我们通常会尝试通过投票来解决这个问题。