可能重複:
count vs length vs size in a collection術語「長度」和「大小」(當然在編程中)之間是否存在技術差異?
在Java特別是關於Strings
,你叫string.length()
,而在Lists
你叫list.size()
。這兩個術語之間是否存在技術差異,因爲String
實際上只是一個chars
的列表?
任何意見讚賞。
可能重複:
count vs length vs size in a collection術語「長度」和「大小」(當然在編程中)之間是否存在技術差異?
在Java特別是關於Strings
,你叫string.length()
,而在Lists
你叫list.size()
。這兩個術語之間是否存在技術差異,因爲String
實際上只是一個chars
的列表?
任何意見讚賞。
理想情況下,count
將是項目的數量,而size
將是佔用的存儲量(如在sizeof
中)。
在實踐中,所有三種(包括length
,這是最不明確的)在許多廣泛使用的庫中混淆起來,所以在這個階段試圖強加一個模式是沒有意義的。
+1承認程序員不完美。 – 2010-02-04 22:04:53
有時'size'用於物品的數量,'capacity'是用於存儲的數量。 – 2010-02-04 22:19:05
@litb,關於C++,是否有可能'vector
我不這麼認爲。這更可能是由API在大型團隊中工作引起的,而不同的人對名稱應該有什麼不同的看法,特別是在某些上下文中具有同義詞的詞語,例如這個詞的大小和長度。
一般來說,length()用在有東西長度固定的情況下,而size()用於長度可變的東西。過去,我知道使用兩個近似同義詞的理由不充分。
的類似討論假設這個,length()是用於***不可變的***數據類型* String *和size()用於***可變***數據類型,如* List *。 – Alex 2011-08-03 21:54:33
正如其他人所談及的,我認爲這是一種語義上的差異。數組非常清晰,被稱爲長度。對象集合更加模糊,部分原因是它的實現(它是一個數組,鏈表,樹?)不一定是你的關注。樹並不是真的有一個長度,但它有一個確定的大小,所以大小可能更有意義的語義。
不使用'size'作爲數組是有意義的,因爲數組的確有一個大小,但它不是元素的數量。一個'int [5]'數組長度爲5,長度爲20(5個元素,每個爲4個字節,長度爲20個字節)。但是這與您的樹例子相沖突,就好像樹的大小是樹中元素的數量,那麼如何命名內存中的實際大小?因此,我不會使用樹的大小,而是使用'count'或'numberOfNodes'。除非我們根據定義討論長度有限的事物,否則我總體上避免了「長度」。一個String有一個長度(和一個大小!),但它不應該有一個「count」。 – Mecki 2017-10-27 11:12:20
對於我來說,
「長度」意味着一個訂單,要測量從起點到終點的長度。
「大小」意味着有多大的東西不暗示訂單,開始或結束。
對我而言,「大小」用於描述結構或其他方式來組織字節在計算機中。它不一定必須被實例化。另一方面,「長度」意味着內存中特定的字節緩衝區在給定點處有多大。
E.g.你提供的緩衝區的長度是多少?它與結構x的大小相同。
也許不同之處在於「長度」與序列一起使用(即某些連續的)。更一般的'尺寸'是用於集合(只是一個項目集合)? – 2010-02-04 21:49:53
http://stackoverflow.com/questions/300522/count-vs-length-vs-size-in-a-collection – 2010-02-04 22:03:26