JavaでMapやListはfor文ではなく拡張for文を使用する

javaJavaのコーディング作法

JavaでMapやListはfor文ではなく拡張for文を使用する

JavaでMapをループするとき以下のようなコードを見ます。

Map map = new HashMap<String, String>();
for (int i = 0; i <map.size(); i++) {
  // 何らかの処理
}

実はあまりよろしくないコードです。

Java1.5から拡張For文があるのでそちらを使用すべきです。

理由は、プログラマによってはi = 0だったりi = 1だったり、<、<=を使用したりとバグの温床になる為です。

上記は以下のように拡張For文で置き換えます。

for(Map.Entry<String, String> e : map.entrySet()) {
  // 何らかの処理
  System.out.println(e.getKey() + " : " + e.getValue());
}

Listなら以下のようなソースです。

List<String> list = new ArrayList<String>();
for (int i = 0; i <list.size(); i++) {
  // 何らかの処理
}

これも同じでよろしくないコードです。

以下のように置き換えます。

List<String> list = new ArrayList<String>();
for (String e : list) {
  // 何らかの処理
}

コメント

タイトルとURLをコピーしました