제너릭 용어
class Box<T> { }
Box<String> b = new Box<String> ( ) ;
제너릭 타입과 다형성
- 참조 변수와 생성자의 대입된 타입은 일치해야 한다.
ArrayList<Tv> list = new ArrayList<Tv> ( ) ;
ArrayList<Product> list = new ArrayList<Tv> ( ) ;
- 제너릭 클래스간의 다형성은 성립(여전히 대입된 타입은 일치)
List<Tv> list = new ArrayList<Tv> ( ) ;
List<Tv> list = new LinkedList<Tv> ( ) ;
ArrayList<Product> list = newArrayList<Product> ( ) ;
list.add(new Product());
list.add(new Tv());
list.add(new Audio());
Iterator
- 클래스를 작성할 때, Object타입 대신 T와 같은 타입 변수를 사용
HashMap
- 여러 개의 타입 변수가 필요한 경우, 콤마(,)를 구분자로 선언
import java.util.*;
class Java {
public static void main(String[] args) {
HashMap<String, Student> map = new HashMap<>();
map.put("자바왕", new Student("자바왕", 1, 1, 100,100, 100));
Student s = map.get("자바왕");
System.out.println(s.name);
}
}
class Student{
String name = "";
int ban;
int no;
int kor;
int eng;
int math;
public Student(String name, int ban, int no, int kor, int eng, int math) {
super();
this.name = name;
this.ban = ban;
this.no = no;
this.kor = kor;
this.eng = eng;
this.math = math;
}
}