확장 For문의 활용(집합체에 적용시켜 사용하기)
우리가 일반적으로 사용해왔던 For문은 단순한 기본자료형의 배열이나 혹은 객체자료형의 배열에서
확장 For문을 사용해 왔었다. 하지만 SCJP문제를 풀면서 이 확장 For문이 집합체에도 적용된다는것을 알았다.
다음은 집합체로써 가장 일반적인 Vector이다.이 Vector에 확장 For문을 적용시켜 보겠다.
import java.util.*;
class ExpasionFor
{
public static void main(String[] args)
{
Vector<Integer> v = new Vector<Integer>();
v.add(1);
v.add(2);
v.add(3);
v.add(4);
v.add(5);
for (int i : v)
{
System.out.println(i);
}
System.out.println("========= 구 분 선 =========");
Vector<String> v2 = new Vector<String>();
v2.add("1");
v2.add("2");
v2.add("3");
v2.add("4");
v2.add("5");
for (String i : v2)
{
System.out.println(i);
}
}
}
위와 같은 코드를 컴파일하여 실행 시켰을 때 다음 실행화면을 알아보도록 하자.
이와 같이 제네릭을 사용하게 되면 Vector에 저장되는 값에 대해서 객체자료형에 제한이 걸리면서
형변환을 하지 않아도 되도록 구현이 된다.
형변환이 내부적으로 이루어지지 않고 바로 해당 값을 원래의 객체자료형에 맞게 꺼낼 수 있기 때문이다.
이러한 이유로 확장For문이 집합체에도 사용가능한 것이다.
※ 단, 위에서 언급했듯이 집합체라고 해서 다되는것은 아니다. 제네릭이 구현되어있어야만 가능하다.
(강제적 형변환이 이루어 지지 않는다는 가정하에서 가능한 것이다.)
'Java' 카테고리의 다른 글
SCJP 40번 문제 do while 과 while의 차이점 (0) | 2013.07.25 |
---|---|
SCJP 30번 문제 File객체의 파일 및 디렉토리 생성 / 디렉토리 변경 (0) | 2013.07.25 |
Arrarys클래스의 sort() 메소드 및 SCJP 49번 문제 (0) | 2013.07.25 |
Comparator 인터페이스 와 Comparable 인터페이스 (0) | 2013.07.25 |
SCJP 70번 문제 와일드 카드와 제네릭에 대한 간단한 기술 (0) | 2013.07.25 |