web-dev-qa-db-ja.com

サイズと長さの方法の違いは?

.size()と_.length_の違いは何ですか? .size()は配列リスト専用で、_.length_は配列専用ですか?

36
BeLambda

長さは定数で、配列の要素数ではなく、配列の格納容量を見つけるために使用されます

例:

_int a[] = new int[5]
_

_a.length_は常に配列の容量と呼ばれる5を返すため、長さは常にCAPACITYを返します。しかし

「配列内の要素の数はサイズと呼ばれます」

例:

_int a[] = new int[5]
a[0] = 10
_

結果は_a.size = 1_および_a.length = 5_になります。

size()はコレクションで動作し、lengthはJavaの配列で動作します

24

size()は_Java.util.Collection_で指定されたメソッドであり、標準ライブラリのすべてのデータ構造に継承されます。 lengthは任意の配列のフィールドです(配列はオブジェクトです。クラスは通常表示されません)、length()は_Java.lang.String_のメソッドです。とにかく_char[]_の薄いラッパー。

おそらく設計上、配列と文字列は不変であり、最上位のCollectionサブクラスはすべて可変です。したがって、「長さ」が表示される場所は一定であり、「サイズ」が表示される場所はそうではありません。

50
MattPutnam
length variable:

Javaでは、配列(Java.util.Arrayではなく)は、言語自体の事前定義クラスです。配列の要素を見つけるために、設計者は長さ変数を使用しました(長さは定義済みクラスのフィールドメンバーです)。 Javaで均一性を持たせるには、length()自体を指定する必要があります。しませんでした。理由はパフォーマンスによるもので、length変数の実行はlength()メソッドの呼び出しよりも高速です。 ==とequals()で2つの文字列を比較するようなものです。 equals()は、==演算子の実行よりも時間がかかるメソッド呼び出しです。

size() method:

コレクションクラスに存在する要素の数を見つけるために使用されます。 Java.util.Collectionインターフェースで定義されています。

2
Khan

構文に基づいて、私はそれがCの子孫である言語であると仮定しています。私が見たように、lengthは配列のような単純なコレクション項目に使用され、ほとんどの場合それはプロパティです。

size()は関数であり、ダイナミックコレクションオブジェクトに使用されます。ただし、使用するすべての目的で、どちらを使用しても結果に違いはありません。ほとんどの実装では、サイズは単に長さプロパティを返します。

1
Buddha

(言語が指定されていない)size()メソッドはlengthプロパティを返します。

ただし、有効なforループは次のようになります。

for (int i = 0; i < values.length; i++) {}
0
hsz