いつか、技術ブログを

新人SE(OJT中)が技術ブログを書きたがっているブログです

Javaの拡張for文の書き方

私は、言語はJavaが1番得意(他と比べるとマシという意味)なのですが、わからないなーと思いながら放置してきた書き方(?)がたくさんあります。
具体的には、
・拡張for文
enum(列挙型)
ジェネリクス
ラムダ式
などです。
入社までに一つずつ理解していきたいので、とりあえず拡張for文から勉強していきたいと思います!

拡張for文とは

拡張for文とは、配列やコレクションをfor文でぐるぐる回す(他の言い方がわからない…)のを、とても簡単に書く方法です。

構文

for(変数宣言 : 配列名またはコレクション名){
  //処理
}

変数宣言→配列と同じ型の変数をなんでもいいから作る
配列名またはコレクション名→配列でも[]はいらない
処理→「変数宣言」の変数を使って処理を書く
:(コロン)は、inの意味だそうです。覚えておくと、変数宣言と配列どっちが先だっけ?って迷わずにすみそうです!

配列を拡張for文で回すコード

class ForSample1{
    public static void main (String[] args){
        int arr[] = {1, 2, 3, 4, 5};
        for(int n : arr){
            System.out.print(n + ",");
        }
    }
}

実行結果

1,2,3,4,5,

コレクションを拡張for文で回すコード

import java.util.ArrayList;

class ForSample2{
    public static void main (String[] args){
        ArrayList<String> arrayList = new ArrayList<String>();
        arrayList.add("one");
        arrayList.add("two");
        arrayList.add("three");
        for(String s : arrayList){
            System.out.print(s + ",");
        }
    }
}

実行結果

one,two,three,

おわりに

実際書いてみたら、思ってたより簡単でした。
:(コロン)を in と読み替えれば、配列と変数どっちが左だっけ?とか混乱しないと思うので、これからはどんどん使っていきたいです!