使用大小或长度是不是有经验法则? [复制]
Posted
技术标签:
【中文标题】使用大小或长度是不是有经验法则? [复制]【英文标题】:Is there a rule of thumb for using Size or Length? [duplicate]使用大小或长度是否有经验法则? [复制] 【发布时间】:2013-01-26 22:07:03 【问题描述】:当您使用 Java 编码时,是否有一个经验法则可以让您轻松知道使用哪一个(大小或长度)?
可以记住哪个数据结构有什么方法,但是有没有更简单的方法呢?
例如,如果您定义 Array of int 但您需要为 ArrayList 使用长度。
(我的经验法则是对数组使用长度,对集合和数组列表等数据结构使用大小)
【问题讨论】:
像 IntelliJ 这样的 IDE 将帮助您解决这个问题。如果没有,请使用 javadocs。不要记住这些琐事。 经验法则就足够了。如有必要,只需查找 API。 我的经验法则是对所有事情都使用同一个。实际上,长度更难以应用于直观上不连续的集合,例如TreeSet
或 HashSet
,但实际上没有必要根据集合的类型有两个不同的名称。
不是String
s 和数组只有length
(至少在标准API 中)吗?
这会有所帮助:***.com/questions/2203425/…
【参考方案1】:
经验法则是使用 API 提供给您的字段或方法。就是这样。
如果你有一个像 Eclipse 这样的 IDE,你可以输入你的列表名称,点击.
键,然后等待公共字段或访问器的列表出现,这样你就可以滚动浏览并找到正确的一。这比记忆更容易(尽管从长远来看,记忆可能会更好地为您服务)。
length
Strings
(被CharSequence
s)使用length()
几乎所有其他东西都使用size()
(小附录:Collection
s 的 size()
函数只为您提供填充字段的数量,而不是分配给 Collection
的实际字段数量,每次超出其当前分配时,它会加倍。)
【讨论】:
我知道我可以使用 API 来帮助我解决这个问题,但我想看看它背后的基本原理是什么,命名一个 Size 和一个 Length,如果有人理解这个原理,可以记住更容易。 “几乎所有其他东西”都使用 size() => 是否有任何文档可以参考它并使其成为其他所有东西而不是几乎?我认为其他所有内容都使用 Size(),但我不确定。 没有理由,只是发生了。是的,这是糟糕的设计。 @sheidaei 我想说“其他一切都使用大小”,但我试图避免做出普遍的陈述。因为不可避免地会出现一个反例,使我的陈述成为错误,即使该反例来自编程的黑暗、未使用和看不见的凹处。 @sheidaei 读到这个问题:***.com/questions/2203425/… 它会消除你的大部分疑惑。【参考方案2】:我会向您推荐这个相关的 S.O.帖子:
count vs length vs size in a collection
这表明该约定基于语言的习语和细微差别以及直观性。
【讨论】:
这是关于 Java 还是泛泛而谈?集合使用 Size 以及在 Java 中不算数。我错过了什么吗?【参考方案3】:Length
对于 continuas 的东西很有用。比如列表和数组。
Size
: 它给出的大小可能等于或不等于长度。
更多:Is there a technical difference between the terms "length" and "size" (in programming, of course)?
【讨论】:
以上是关于使用大小或长度是不是有经验法则? [复制]的主要内容,如果未能解决你的问题,请参考以下文章