なんで配列の長さがlengthであってsizeじゃダメなのかがわかりません。
Listの長さがsizeであってlengthじゃダメなのかもわかりません。
ArrayListで.lengthで動かなかったので疑問に思いました。
解説お願いしたいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
結局のところ「言語仕様、ライブラリ仕様でそう決まっちゃってる」になりますが、
まず配列のlengthは言語仕様レベルで決められています。
The public final field length, which contains the number of components of the array. length may be positive or zero.
これはJava初期から組み込まれていたもので、メソッドですらありません。(こんなpublicフィールド自分のライブラリで定義したら総スカン食らいそう)
そして size() は、J2SE 1.2のコレクション(後にさらにジェネリクスも追加)とともに定義されました。
size()はCollection<E>インタフェースのメソッドです。Collection<E>を継承したインタフェースにはList<E>だけではなくSet<E>などもあります。Collectionは「コレクション」、Setは「集合」であり、その個数を表すとすれば「length()」よりも「size()」が正しいと思います。
「Rubyならlength/sizeどっちでもオッケーなのに」という意見はごもっとも。
投稿2018/12/20 07:30
総合スコア1563
0
ベストアンサー
なんで配列の長さがlengthであってsizeじゃダメなのかがわかりません。
それは単に、Javaの設計がそうなっているだけです。Rubyでは、Array
に対してlength
とsize
の両方を用意してあります(るりま)。
投稿2018/12/20 06:30
編集2018/12/20 06:31総合スコア145192
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ないからです。
プログラムは指示した通りにしか動きません。
レストランでメニューにないものを注文しても基本的には作ってはくれません。
プログラムは「基本的には」がないです。長年使ってるからと用意してくれるかと言うとそういうわけではないですね。ないものはないです。
JavaScriptはlengthが残りましたけど、よそはよそです。
あと正確にはsize()ですね。
どうしてもlengthで動かしたければどこからでも呼べるコントローラーとかにlength()とか用意しておいて中身をsize()で返すようにしたらいいのではないでしょうか。
投稿2018/12/20 06:38
編集2018/12/20 06:43総合スコア80852
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/20 07:01
2018/12/20 07:02
2018/12/20 07:17
2018/12/20 07:19
退会済みユーザー
2018/12/20 08:04
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。