자바5.0이 나오면서 새로추가된 기능으로 코드가 간결해진다.
단, 기존 1.4에 익숙해져있는 개발자들이 이 문법을 봤을때는 살짝 거부감이 들지도 모른다..
나 또한 1.4만 써오다 이런게 있다고만 알았지 정작 사용해보지는 않았기 때문이다.
하지만 지금 회사에서 대리님 한분이 사용을 하시길래 개념을 확실히 잡고자 이렇게 정리했다..
import java.util.ArrayList;
public class Generic {
public static void main(String[] args) {
public static void main(String[] args) {
// 기존 JDK 1.4에서 사용했던 방식
ArrayList a1 = new ArrayList();
a1.add(“aaa”);
a1.add(“bbb”);
a1.add(“ccc”);
ArrayList a1 = new ArrayList();
a1.add(“aaa”);
a1.add(“bbb”);
a1.add(“ccc”);
for (int i = 0; i < a1.size(); ++i) {
String imsi = (String) a1.get(i);
System.out.println(imsi);
}
String imsi = (String) a1.get(i);
System.out.println(imsi);
}
// JDK5에 추가된 Generic 기능과 for문의 확장
// List 객체에 난 String 객체만 사용할거라다고 명시를 하기때문에 for문에서 Casting 작업을 하지 않아도 된다.
ArrayList<String> a2 = new ArrayList<String>();
a2.add(“이남규천재”);
a2.add(“우헤헤헤헤”);
a2.add(“음하하하하”);
a2.add(“우부흐스”);
// List 객체에 난 String 객체만 사용할거라다고 명시를 하기때문에 for문에서 Casting 작업을 하지 않아도 된다.
ArrayList<String> a2 = new ArrayList<String>();
a2.add(“이남규천재”);
a2.add(“우헤헤헤헤”);
a2.add(“음하하하하”);
a2.add(“우부흐스”);
for (String o : a2) {
System.out.println(o);
}
System.out.println(o);
}
// 배열도 for문의 확장기능을 사용할 수 있다.
String[] str = new String[] { “DBA”, “JAVA”, “C++”, “eclispe” };
for (String s : str) {
System.out.println(s);
}
String[] str = new String[] { “DBA”, “JAVA”, “C++”, “eclispe” };
for (String s : str) {
System.out.println(s);
}
// AutoBoxing
// 아래와 같이 List 객체에 Integer로 Generic되어있지만 new Integer(1) 코드를 단순 숫자 1로 넣어도
// 된다.
// 이는 AutoBoxing 기능이 1이라는 숫자를 자동으로 Integer 제너릭을 보고 변환시켜주기 때문이다.
ArrayList<Integer> a3 = new ArrayList<Integer>();
// a3.add(new Integer(1));
// a3.add(new Integer(2));
// a3.add(new Integer(3));
// 아래와 같이 List 객체에 Integer로 Generic되어있지만 new Integer(1) 코드를 단순 숫자 1로 넣어도
// 된다.
// 이는 AutoBoxing 기능이 1이라는 숫자를 자동으로 Integer 제너릭을 보고 변환시켜주기 때문이다.
ArrayList<Integer> a3 = new ArrayList<Integer>();
// a3.add(new Integer(1));
// a3.add(new Integer(2));
// a3.add(new Integer(3));
a3.add(1);
a3.add(2);
a3.add(3);
a3.add(2);
a3.add(3);
for (Integer a : a3) {
System.out.println(a);
}
}
}
System.out.println(a);
}
}
}