문법
다음과 같이 코드 코드를 복사합니다.
for (Object objectname : preArrayList(Object 객체 목록)) {}
예
다음과 같이 코드 코드를 복사합니다.
패키지 com.kuaff.jdk5;
import java.util.*;
import java.util.Collection;
공개 클래스 Foreach
{
개인 컬렉션 c = null;
private String[] belle = new String[4];
공개Foreach()
{
belle[0] = "시시";
belle[1] = "왕자오쥔";
belle[2] = "초선";
belle[3] = "양귀비";
c = Arrays.asList(belle);
}
공개 무효 testCollection()
{
for (문자열 b : c)
{
System.out.println("비할 데 없이 풍화된 사람:" + b);
}
}
공공 무효 testArray()
{
for (문자열 b : 벨)
{
System.out.println("과거는 역사에 이름을 남겼습니다:" + b);
}
}
공개 정적 무효 메인(문자열[] 인수)
{
Foreach 각각 = new Foreach();
각각.testCollection();
각각.testArray();
}
}
컬렉션 유형과 배열 유형 모두 foreach 구문을 통해 액세스할 수 있습니다. 위의 예에서 우리는 순서대로 배열에 액세스했는데 이는 매우 번거로운 작업이었습니다.
다음과 같이 코드 코드를 복사합니다.
for (int i = 0; i < belle.length; i++)
{
문자열 b = belle[i];
System.out.println("비할 데 없이 풍화된 사람:" + b);
}
이제 필요한 것은 다음과 같은 간단한 명령문뿐입니다.
다음과 같이 코드 코드를 복사합니다.
for (문자열 b : 벨)
{
System.out.println("과거는 역사에 이름을 남겼습니다:" + b);
}
컬렉션에 액세스하면 효과가 더 분명해집니다. 이전에는 컬렉션 코드에 액세스했습니다.
다음과 같이 코드 코드를 복사합니다.
for (반복자 it = c.iterator(); it.hasNext();)
{
문자열 이름 = (String) it.next();
System.out.println("비할 데 없이 풍화되었던 사람:" + name);
}
이제 다음 명령문만 필요합니다.
다음과 같이 코드 코드를 복사합니다.
for (문자열 b : c)
{
System.out.println("비할 데 없이 풍화된 사람:" + b);
}
Foreach는 전능하지 않으며 다음과 같은 단점도 있습니다.
이전 코드에서는 Iterator를 통해 제거 작업을 수행할 수 있었습니다.
다음과 같이 코드 코드를 복사합니다.
for (반복자 it = c.iterator(); it.hasNext();)
{
제거()
}
그러나 현재 버전의 foreach에서는 컬렉션에 포함된 개체를 삭제할 수 없습니다. 객체도 교체할 수 없습니다.
또한 여러 컬렉션을 병렬로 foreach할 수 없습니다. 그러므로 우리는 코드를 작성할 때 상황에 맞게 사용해야 합니다.