★★Java質問・相談スレッド161★★at TECH
★★Java質問・相談スレッド161★★ - 暇つぶし2ch24:デフォルトの名無しさん
13/03/24 19:01:41.33
for文は配列専用
while文はList専用

と使い分けている

25:デフォルトの名無しさん
13/03/24 19:11:19.30
その使い分けの意図はよく解らない。

26:デフォルトの名無しさん
13/03/24 19:19:11.51
昔から配列操作といえばfor文だったから
初期化子が中にあるというのが

ただしfor(:)の場合は例外

27:デフォルトの名無しさん
13/03/24 19:20:50.20
反復回数が一定の処理ならfor文のほうがパッと見でソースが分かりやすい
反復子?って奴の変化が単調ならfor文、ループ内の処理次第で変わるならwhile

28:デフォルトの名無しさん
13/03/24 19:21:27.25
>>24
iteratorの糖衣構文はforでしか使えないよなぁ。

29:デフォルトの名無しさん
13/03/24 19:36:11.65
くだらんこといってないでruby勉強しろ

30:デフォルトの名無しさん
13/03/24 19:46:00.45
はいはいrubyruby

31:デフォルトの名無しさん
13/03/24 19:56:55.80
forを使った方が反復子のスコープが小さいというのはある。

Iretator<String> i = list.iterator();
while(i.hasNext()){...}



for(Iretator<String> i = list.iterator(); i.haxNext();) {...}

ではiのスコープがループの外に出ないのでforの方が良いという場合はある。

32:デフォルトの名無しさん
13/03/24 20:11:55.74
馬鹿には無理

33:デフォルトの名無しさん
13/03/24 20:47:35.57
>>31
java6からだっけ、foreach使えるようになったらイテレータとか使わなくなった

34:デフォルトの名無しさん
13/03/24 22:09:54.96
remove使う場合など反復子そのものに用事があるときはforの糖衣構文ではなく
whileとか使う必要がある。

35:デフォルトの名無しさん
13/03/24 22:44:52.40
ループ条件に定数式使っただけで警告をもりもり吐く
お節介な「品質向上システム」とかがあってだな・・・

36:デフォルトの名無しさん
13/03/24 23:36:08.36
>>31
独習JavaだかEssential Javaだかにそんなことが載っていたような気がする

37:デフォルトの名無しさん
13/03/25 02:01:09.61
Iteratorや糖衣構文のfor-eachは使うには便利だが、
自前で実装するとなると面倒臭い。

hasNext()でカーソル進めて、
next()でカーソルが指すオブジェクトを取得。

の方がずっと楽なのに、なんであんな仕様なんだ?

38:デフォルトの名無しさん
13/03/25 02:03:27.80
Iteratorパターンってもともとそういうもんでしょ
わざとクラスを分割しているんだと

39:デフォルトの名無しさん
13/03/25 02:09:55.64
ListIteratorつかって

List#get(nextIndex())

40:デフォルトの名無しさん
13/03/25 02:55:26.55
>>39
配列や線形リストのIteratorなら自作でも割と簡単。

hasNext()で次のデータがあるか調べる(内部状態は変化しない)、
next()でデータを返す+カーソルを進める(データを返しつつ、内部状態も変化させる、だがremove()のために返したデータは記憶しておく)
っていうJavaのIteratorの仕様だと、

例えば、親ディレクトリを指定して、サブディレクトリを含む全ファイルを1つずつ返すIterator
なんてのを作るのがクソ面倒臭いのよ。

41:デフォルトの名無しさん
13/03/25 06:44:21.10
あまり難しい話は禁止ね
やめなさい

42:デフォルトの名無しさん
13/03/25 08:33:44.98
>>40
そもそも、Genericsの仕様が難儀だからなあ
Genericsを意識しなかったら簡単につくたりして

43:デフォルトの名無しさん
13/03/25 09:05:16.73
ArrayListのlistiteratorかiteratorでremoveがunsupportedで驚いた覚えが。
LinkedListを使えば良かったけど。

44:デフォルトの名無しさん
13/03/25 13:53:11.13
>>40
commonsかどっかに、子Iteratorを連結するIterator実装があったよ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch