반응형
제네릭은 아주 많이 쓰이는 문법 중 하나입니다
결론적으로 제네릭이 뭐냐하면
클래스 내부에서 사용할 타입을 내부에서 지정하지 않고 외부에서 지정하도록 하는것입니다
그렇다면 내부에서는 지정하지 않아놨겠죠?ㅎㅎ
저번에 보았던 HashMap 을 사용할때에도 굉장히 많이씁니다
거의 무조건 쓴다고 보시면 됩니다
HashMap<K, V> hm = new HashMap<>();
여러분들이 이클립스에서 HashMap까지 타이핑 하고 컨트롤 쉬프트를 누르면
자동완성이 되잖아요?ㅎㅎ
그럼 저런식으로 자동완성이 됩니다 ㅎㅎ
저번에 배운것 처럼 HashMap은 key val 형태로 구성 되어있어서 약어로 K , V로
자동완성이 되는겁니다 ㅎㅎ
그럼 우리 HashMap으로 한번 만들어봅시다 이 제네릭에 들어갈 수 있는 것은 기본 자료형이 아니면
괜찮습니다 ㅎㅎ int같은 친구들은 안돼요 ㅜ 대신 Integer를 사용할 수 있습니다
key를 String으로 value를 내가만든 person 객체로 해봅시다
이 이유는 여러명의 사람들이 있는데 각 개인마다 나이도 성별도 외모도 다를거잖아요?
그럼 여러명의 데이터를 하나의 묶음으로 즉 map으로 갖고 있을 수 있도록 map으로 만들어봅시다
일단 간단한 Person 클래스입니다
package studyProject;
public class Person {
String name = ""; //이름
String addr = ""; //주소
int age = 0; //나이
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
그리고 이 클래스를 이용해서 객체를 생성하고 map에 집어넣어봅시다 ㅎㅎ
Person p1 = new Person();
p1.setAddr("주소");
p1.setAge(2);
p1.setName("홍길동");
Person p2 = new Person();
p2.setAddr("주소123123");
p2.setAge(222);
p2.setName("룰루");
Person p3 = new Person();
p3.setAddr("주소는 안알랴줌");
p3.setAge(33);
p3.setName("랄라");
//3개의 객체를 map에 저장하자
HashMap<String, Person> hm = new HashMap<>();
hm.put("1", p1);
hm.put("2", p2);
hm.put("3", p3);
서로 다른 객체를 하나의 HashMap에 저장을 합니다 ㅎㅎ
이처럼 제네릭에는 타입을 내가 지정해서 사용하는 것입니다
반응형
'Developer > Java' 카테고리의 다른 글
[java] hashmap 오름차순, 내림차순정렬 (0) | 2022.08.29 |
---|---|
[java]equals (0) | 2022.08.26 |
[java]컬렉션즈 프레임워크 (0) | 2022.08.22 |
[java] 예외처리 (0) | 2022.08.18 |
[java]추상(abstract) (0) | 2022.08.18 |