トップページ > プログラム > 2016年01月21日 > gmF2lxtT

書き込み順位&時間帯一覧

5 位/167 ID中時間01234567891011121314151617181920212223Total
書き込み数0000001230000000000000006



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
★★Java質問・相談スレッド176★★ [無断転載禁止]©2ch.net

書き込みレス一覧

★★Java質問・相談スレッド176★★ [無断転載禁止]©2ch.net
6 :デフォルトの名無しさん[sage]:2016/01/21(木) 06:41:58.31 ID:gmF2lxtT
> remove使わないならそれ専用のインターフェース作るのか?
そんな極端な話誰もしてないだろう
インターフェース作ることで多数の実装が想定できるなら利点はあるけど、
remove のない別のインターフェースを作ったところで意味は成さない

インターフェースの利点の一つは、具象クラスの置き換えが効くこと
だから、置き換えが想定される場所ではインターフェースを利用することでコードの修正箇所を極小化できるし、
また、そのインターフェースを使ったコードは別の具象クラスに対しても再利用できる

まぁこれだけなら abstract クラスにも当てはまる単なるポリモーフィズムの利点だけど

List に関しては ArrayList しかほぼ使わん以上あまり意味のあるものじゃないだろうけどな
短いから var 感覚で使ってる点はあるだろう
ただ標準APIとしては、ArrayList、LinkedList 以外にも他の人が(もしくは後のバージョンで)別のList実装作る可能性も考慮したのかもしれない
★★Java質問・相談スレッド176★★ [無断転載禁止]©2ch.net
9 :デフォルトの名無しさん[sage]:2016/01/21(木) 07:43:46.01 ID:gmF2lxtT
>>7
> 異なるデータ構造を無理矢理同じインターフェースに纏めたのは失敗
インターフェースってそもそもそういうものだろ
実装が異なるんだから、データ構造が異なるのも当然ありうる
実装の違いを吸収するのがインターフェースの役割なんだから

その名の通り、外部との接続の仕様(=インターフェース)が異なる場合にインターフェースを分ければ良い
ArrayList と LinkedList で get の計算量の違いを仕様が異なると判断するならインターフェースを分けることになるだろうし
Java の場合はまとめて、ランダムアクセス可能なことを示すマーカーインターフェースを別に作ったってだけ
個人的には別にそれが悪い判断だったとは思わない
★★Java質問・相談スレッド176★★ [無断転載禁止]©2ch.net
11 :デフォルトの名無しさん[sage]:2016/01/21(木) 07:53:08.12 ID:gmF2lxtT
> 圧倒的に多く使われる「配列っぽいもの」の利便性を大きく損なう
trimToSize と ensureCapacity が使えないことが利便性を大きく損なう事なのか?
ちょっと言ってることがよく分からん
★★Java質問・相談スレッド176★★ [無断転載禁止]©2ch.net
13 :デフォルトの名無しさん[sage]:2016/01/21(木) 08:10:42.16 ID:gmF2lxtT
> インデックスを指定するメソッドを使用するときには必ず
> 要素の参照にO(N)かかることを考慮しなければならない

それによって書くコードが変わることなんてほとんど無いと思うけどな
LinkedList 渡して処理に時間がかかるなら、それはさすがに渡してきた奴の責任だと思うし
★★Java質問・相談スレッド176★★ [無断転載禁止]©2ch.net
15 :デフォルトの名無しさん[sage]:2016/01/21(木) 08:29:08.06 ID:gmF2lxtT
> そりゃ今現在LinkedListが紛れ込む可能性があるんだから今あるコードに大きな違いが生じないのは当たり前でしょ
そうじゃなくて、List が RandomAccess かどうかでコードが変わることが無いって話
今は LinkedList が紛れ込む可能性あるけど、RandomAccess インターフェースを確認してるコードなんてほぼないでしょ

> 元々インデックスが常にO(1)だったとしたら普通にみんなforループ回してるよ
言ってる意味わからん、今でも普通に for ループまわしてるよ
拡張 for 文のほうがむしろ書きやすいし、それをもって不便ってことはないだろ
★★Java質問・相談スレッド176★★ [無断転載禁止]©2ch.net
18 :デフォルトの名無しさん[sage]:2016/01/21(木) 08:57:05.89 ID:gmF2lxtT
2004年はさすがに最近ではないだろ… Javaの歴史で見ても
「List をインデックスで回せること」に利便性を感じるかどうかってとこだよな
少なくとも今は別にって感じだな


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。