구문
for (Object objectname : preArrayList(一个Object对象的列表)) {}
예
package com.kuaff.jdk5; import java.util.*; import java.util.Collection; public class Foreach { private Collection c = null; private String[] belle = new String[4]; public Foreach() { belle[0] = "西施"; belle[1] = "王昭君"; belle[2] = "貂禅"; belle[3] = "杨贵妃"; c = Arrays.asList(belle); } public void testCollection() { for (String b : c) { System.out.println("曾经的风化绝代:" + b); } } public void testArray() { for (String b : belle) { System.out.println("曾经的青史留名:" + b); } } public static void main(String[] args) { Foreach each = new Foreach(); each.testCollection(); each.testArray(); } }
컬렉션 유형과 배열 유형 모두 foreach 구문을 통해 액세스할 수 있습니다. 위의 예에서는 이전에 배열에 순차적으로 액세스해야 했기 때문에 상당히 번거롭습니다.
for (int i = 0; i < belle.length; i++) { String b = belle[i]; System.out.println("曾经的风化绝代:" + b); }
이제 다음과 같은 간단한 명령문만 필요합니다.
for (String b : belle) { System.out.println("曾经的青史留名:" + b); }
컬렉션에 액세스하면 효과가 더 커집니다. 분명한. 이전에는 컬렉션에 액세스하기 위한 코드:
for (Iterator it = c.iterator(); it.hasNext();) { String name = (String) it.next(); System.out.println("曾经的风化绝代:" + name); }
이제 다음 문만 필요합니다.
for (String b : c) { System.out.println("曾经的风化绝代:" + b); }
Foreach는 전능하지 않으며 다음과 같은 단점도 있습니다.
이전 코드에서는 Iterator를 통해 제거 작업을 수행할 수 있습니다.
for (Iterator it = c.iterator(); it.hasNext();) { itremove() }
그러나 현재 foreach 버전에서는 컬렉션에 포함된 개체를 삭제할 수 없습니다. 객체도 교체할 수 없습니다.
동시에 여러 컬렉션을 동시에 foreach할 수는 없습니다. 그러므로 우리는 코드를 작성할 때 상황에 맞게 사용해야 합니다.
Java 프로그램의 foreach 사용 예제와 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!