1. ArrayList(Collection<? extends E> c)
- Collection<? extends E> c : E타입의 클래스이거나 E타입을 상속받은 자식클래스가 제네릭타입으로 지정됨
- Collection<? super E> c : E타입의 클래스이거나 E타입의 부모클래스가 제네릭타입으로 지정됨
ex>
package test01.util;
import java.util.ArrayList;
class AA{
private int a;
public AA(int a){
this.a=a;
}
public int getA(){
return a;
}
}
class BB extends AA{
private int b;
public BB(int a,int b){
super(a);
this.b=b;
}
public int getB(){
return b;
}
}
public class Test06_generic{
public static void main(String[] args)
{
ArrayList<BB> list1=new ArrayList<BB>();
list1.add(new BB(1,2));
list1.add(new BB(3,4));
list1.add(new BB(5,6));
//ArrayList<String> list=new ArrayList<String>();
//list.add(new AA(1));
//list1은 AA의 자식클래스들을 담고 있으므로 가능!
ArrayList<AA> list2=new ArrayList<AA>(list1);
for(int i=0;i<list2.size();i++){
AA aa=list2.get(i);
System.out.println(aa.getA());
}
}
}
2. 제네릭 클래스
- 특정 자료형에 상관없이 똑같은 알고리즘이 적용되는 클래스인 경우 제네릭 클래스로 만들수 있다.
EX>
package test01.util;
class Data<T>{
private T a;
public void setA(T a){
this.a=a;
}
public T getA(){
return a;
}
}
public class Test07_generic{
public static void main(String[] args)
{
Data<Integer> d1=new Data<Integer>();
d1.setA(10);
System.out.println(d1.getA());
Data<String> d2=new Data<String>();
d2.setA("아리랑");
System.out.println(d2.getA());
}
}
3. 확장for문
- jdk5.0버전 이상부터 지원됨
- 형식)
for(저장변수:컬렉션객체 또는 배열)
{
반복실행문장;
...
}
EX>
package test01.util;
import java.util.ArrayList;
public class Test08_for{
public static void main(String[] args)
{
int []a={10,20,30,40,50};
//배열a의 요소가 순차적으로 k에 저장됨
for(int k:a){
System.out.print(k +" ");
}
System.out.println();
ArrayList<String> list=new ArrayList<String>();
list.add("하나");
list.add("둘");
list.add("세엣");
list.add("네엣");
for(String str:list)
{
System.out.print(str + " ");
}
System.out.println();
ArrayList<Member> list1=new ArrayList<Member>();
list1.add(new Member("song","1234","song@naver.com"));
list1.add(new Member("kim","0000","kim@naver.com"));
list1.add(new Member("lee","1111","lee@naver.com"));
//확장for이용해서 list1의 데이터를 출력해 보세요.
for(Member mm:list1)
{
System.out.println("아이디:" + mm.getId());
System.out.println("비밀번호:" + mm.getPwd());
System.out.println("이메일:" + mm.getEmail());
}
}
}
'JAVA' 카테고리의 다른 글
예외처리 ( Exception ) (0) | 2014.09.12 |
---|---|
Calendar 클래스 (0) | 2014.09.12 |
자료구조 - Map (0) | 2014.09.12 |
자료구조 - Stack / TreeSet (0) | 2014.09.12 |
자료구조 API - Collection 프레임워크 (0) | 2014.09.12 |