以下のエディターは、foreach (拡張 for ループ) と for の違いについての決まり文句を示します。編集者はこれがとても良いものだと思ったので、皆さんの参考として今から共有します。エディターをフォローして見てみましょう
まず最初に、拡張 for ループとも呼ばれる foreach について説明します。Foreach は、実際には for ループの特別な簡易バージョンです。
foreach の記述形式について話しましょう:
for (要素型要素名: traverse array (set) (or iterable)) {
statement
}
foreach は for ループですが、簡略化しましたただし、ループの数が不明な場合、またはループの数を計算するのが面倒な場合は、foreach の方が効率的であるという意味ではありません。ただし、一部のより複雑なループでは、依然として for ループを使用する必要があります。 、より効率的です。
次の例を見てみましょう:
public static void main(String[] args) { List<String> arr = new ArrayList<String>(); arr.add("你好"); arr.add("我好"); arr.add("大家好"); //foreach循环 for(String str : arr){ //这里的str就是为了获取每次循环的arr中的值 System.out.println(str); //就相当于 String str=arr[i] } }
しかし、それに比べて、入力にforループを使用するのは少し面倒です
public static void main(String[] args) { List<String> arr = new ArrayList<String>(); arr.add("你好"); arr.add("我好"); arr.add("大家好"); //for循环 for(int i=0;i<arr.size();i++){ System.out.println(arr.get(i)); //要获取list中元素需要用get方法 } }
この普通のことに加えてこの種のキーと値のペアは
を使用します。例:
public static void main(String[] args) { Map<String,String> mapstr = new HashMap<String,String>(); mapstr.put("王", "男"); mapstr.put("李", "男"); mapstr.put("张", "女"); //entrySet方法是为了获取键值对的集合 for(Map.Entry<String, String> s : mapstr.entrySet()){ //这里的Map.Entry<String, String>其实就是一个类型 用来表示键值对的类型 System.out.println("key="+s.getKey()); //这里其实还是相当于 s=maostr.entrySet,只不过s存储的是键值对。 System.out.println("value="+s.getValue()); //所以可以用get方法获取出来存储的键值对。 } }
さらに、foreach ループを使用する場合、配列 ( collection) はすでにロックされており、変更できません。そうでない場合は、java.util.ConcurrentModificationExceptionException
が報告されます。例:
public static void main(String[] args) { List<String> arr = new ArrayList<String>(); arr.add("你好"); arr.add("我好"); arr.add("大家好"); //foreach循环 for(String str : arr){ System.out.println(str); arr.add("1"); //对arr进行添加 } }
追加と削除ができない原理とその方法について説明します。 foreach での追加と削除については次の記事で説明します。
要約は次のとおりです:
foreach はコレクションまたは配列を単に走査するのに適していますが、より複雑なループでは for の方が効率的です。
foreach は配列またはコレクションを変更 (追加または削除操作) することはできません。変更したい場合は、for ループを使用する必要があります。
つまり、for ループはそれに比べてより柔軟です。
以上がforeach と for の違いを比較するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。