요소를 수집할 때 특정 자료형으로 제한하기 위해 사용한다.
종류
<E> Element
<K, V> Key, Value
<T>
<?>
<참조자료형>
<>에는 클래스만 가능하고 기본 자료형은 올 수 없다.
//Vector<int> 기본 자료형은 올 수 없다. 에러
Vector<String> vec = new Vector<>();
vec.add("개나리");
vec.add("진달래");
vec.add(new String("무궁화"));
//vec.add(3); 에러
//vec.add(2.4); 에러
//vec.add(new Character('R')); 에러
ArrayList<Integer> list = new ArrayList<>();
list.add(3);
list.add(new Integer(5));
//list.add(2.4); 에러
//list.add("KOREA"); 에러
HashSet<Double> set = new HashSet<>();
set.add(1.2);
set.add(new Double(3.5));
//set.add(7); 에러
//set.add(""); 에러
HashMap<String, Character> map = new HashMap<>();
map.put("one", 'R');
map.put("two", new Character('r'));
//map.put("", ""); 에러
System.out.println(map.get("one")); //R
우리가 만든 클래스도 제네릭으로 사용이 가능하다.
class Mountain {
String name; //산이름
int height; //산높이
public Mountain() {}
public Mountain(String name, int height) {
this.name = name;
this.height = height;
}//end
}//class end
public class Test05_generic {
public static void main(String[] args) {
Mountain m1 = new Mountain("한라산", 1950);
Mountain m2 = new Mountain("관악산", 1500);
Mountain m3 = new Mountain("북한산", 1000);
ArrayList<Mountain> item = new ArrayList<>();
item.add(m1);
item.add(m2);
item.add(m3);
//item.add(""); 에러
for (int i=0; i<item.size(); i++) {
Mountain m = item.get(i);
System.out.println(m.name);
System.out.println(m.height);
}//for end
}//main() end
}//class end
'웹개발 교육 > Java' 카테고리의 다른 글
[37일] Java (48) - Thread (0) | 2022.09.19 |
---|---|
[37일] Java (47) - 상품 구매 및 반품 프로그램 (0) | 2022.09.19 |
[36일] Java (45) - Set, Map (0) | 2022.09.16 |
[36일] Java (44) - List (0) | 2022.09.16 |
[36일] Java (43) - throws (0) | 2022.09.16 |