トランの毎日迷宮

Tech系ブログを目指すもの

【Java】Listから要素を取り出すのメモ!【繰り返し】

こんばんにちございます。トランです。

久々の更新です。JavaArrayList系,つまりコレクションから値を取り出すとき、皆さんはどうしていますか?何通りあるんだろう?今日はそんなことを思ったのでいっぱい試してみました。以下エクリプスでのスクリーンショットです。

f:id:trantran1021:20190404010401j:plain

まぁこんな感じにArrayListを作りました。さぁいくよ~~~~

f:id:trantran1021:20190404010528j:plain

f:id:trantran1021:20190404010619j:plain

 

f:id:trantran1021:20190404010702j:plain

これでもかってくらいfor文がありますね。for文の初期値、条件式、インクリメンタルは省略ができるのを知っていたでしょうか?まぁ省略して書いたら書いたで中にif文やらbreakが必要になってくるんですけどね。※条件式を省略したfor文は常にtrueになりますのでbreakやreturnなしは無限ループにはまる

while文なんかもおなじみですね。ご存知かもしれませんがwhile文は条件式の省略はできません。条件の中身に直接trueを書き込むことができます。その際は無限ループから脱出する方法を用意するのをお忘れなく。

iteratorはあんまり良さがわからんですね。。。streamや拡張for文でてきたから日の目を見る機会が少なくなってきている気がします。余談なんですがOracleデータベースから値を取り出すときとかの結果セットから値を取り出す操作に似ているきがする。next()するあたり、、、。

Java1.8から出てきたfor-eachメソッドとstreamは面白い書き方になっていますね。

ラムダ式という書き方でまーなんとなくわかるんですけどまだ完全に使いこなせていないので早く書きまくってさっと使えるようになりたいですね。慣れないせいか内部でどういう処理を行っているかがパッと思い浮かべることができないというのはくやしいですね。

漢字間違えてるー。正しくは再帰ですね。再帰呼び出しは無理矢理感半端ない。わざわざ別のメソッドまで作ってやる必要がどこにあったのかというね。もうラインナップを増やす要因にしかなっていない気がする。ちなみになんですけどこの再帰呼び出しもif文を使ったりしてこの再帰を抜ける処理を書いてあげないと無限ループになってしまいますので注意が必要です。

やっぱりこの中で一番好きな書き方はやっぱり拡張for文ですね。インデックス変数を使わずにすべての要素に対して処理が行えますし。これならコレクションの中が1になろうが2になろうが3になろうが100になろうが大丈夫ってのがいいですね。

いかがでしたでしょうか?たくさんのコレクション操作の仕方がありますね。

そんなわけで、おやすみ。