重複の可能性:
コレクション内の数 vs 長さ vs サイズ
特に Java では、 onStrings
では を呼び出しますがstring.length()
、ではLists
を呼び出しますlist.size()
。String
aは実際には単なるリストであるため、2 つの用語の間に技術的な違いはありchars
ますか?
コメントをお待ちしております。
重複の可能性:
コレクション内の数 vs 長さ vs サイズ
特に Java では、 onStrings
では を呼び出しますがstring.length()
、ではLists
を呼び出しますlist.size()
。String
aは実際には単なるリストであるため、2 つの用語の間に技術的な違いはありchars
ますか?
コメントをお待ちしております。
一般に、length() は一定の長さの場合に使用され、size() は可変長の場合に使用されます。それを過ぎると、ほぼ同義の 2 つの用語を使用する正当な理由がわかりません。
理想的にcount
は、アイテムの数であり、size
(のように)使用されるストレージの量ですsizeof
。
実際には、3つすべて(length
最もあいまいなを含む)は、広く使用されている多くのライブラリで混乱しているため、この段階でそれらにパターンを課そうとしても意味がありません。
私のため、
「長さ」は順序を意味し、最初から最後までの長さを測定しています。
「サイズ」は、順序、開始、または終了を意味することなく、何かがどれだけ大きいかを意味します。
私はそうは思わない。これは、API が大規模なチームで作業していることが原因である可能性が高く、特にこの問題のサイズや長さなど、特定のコンテキストで同義語となる単語については、人によって名前のあり方が異なる場合があります。
他の人が触れたように、それは意味論的な違いだと思います。配列は非常に明確に定義されており、長さがあると見なされます。オブジェクトのコレクションはよりあいまいです。その理由の 1 つは、その実装 (配列、リンク リスト、ツリーのいずれか) が必ずしも関心事ではないためです。ツリーには実際の長さはありませんが、明確なサイズがあるため、意味的にはサイズの方が理にかなっています。
私にとって、「サイズ」は、コンピューター内のバイトを編成する構造またはその他の方法を説明するときに使用されます。必ずしもインスタンス化する必要はありません。一方、「長さ」は、メモリ内の特定のバイトのバッファが特定の時点でどれだけ大きいかを意味します。
たとえば、提供しているバッファの長さは? 構造体 x のサイズと同じバイト数です。