0
0

配列に対する処理 for, forEach, find, filter

Posted at

新人エンジニアの三上です。
今回は、配列に対する操作の中で、私が実際に使用したことのあるものをまとめてみようと思う。

for

配列の要素をループごとに変数に代入し、そのループ内で変数を使用する。
以下にサンプルコードを示す。

for
    val sampleList = [0,1,2,3,4,5]
    
    for (sample in sampleList) {
    	if (sample == 2) {
        	println(sample)
    	}
    }

配列 sampleList の要素を 変数 sample に設定し、sample に対し、条件判定を行うことで、任意の要素を出力する。

forEach

for と処理は同様だが、記載の方法が異なる。
以下にサンプルコードを示す。

forEach
    val sampleList = [0,1,2,3,4,5]
    
    sampleList.forEach {sample =>
    	if (sample == 2) {
        	println(sample)
    	}
    }

for と同様であるため、省略。
ここで、sample を定義せずとも、forEach 内では it として各要素を指定することが出来る。
明示的に変数を定義する方が、各変数の意味が分かりやすいため、変数定義することが望ましい。

find

配列内の要素に対して、条件判定を行い、その条件を満たす要素を取得する。
以下にサンプルコードを示す。

find
    val sampleList = [0,1,2,3,4,5]
    
    val findSample = sampleList.find (sample =>
    	sample == 2
    }

ここで、戻り値は条件判定を満たす配列内の1つ目の要素となる。型としてはInt型である。

filter

配列内の要素に対して、条件判定を行い、その条件を満たす要素で構成された配列を取得する。
以下にサンプルコードを示す。

filter
    val sampleList = [0,1,2,3,4,5]

    val filterdList = sampleList.filter (sample =>
    	sample == 2
    )

ここで、戻り値の型は sampleList と同じ Int 型の配列である。

まとめ

同様の操作でも上記の操作を使い分けることで、コード量を抑えることが出来る。
また、処理の内容を簡潔で分かりやすく記載することが出来る。

以上、三上でした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0