Published 2022. 8. 25. 17:04
반응형

제네릭은 아주 많이 쓰이는 문법 중 하나입니다 

 

결론적으로 제네릭이 뭐냐하면 

클래스 내부에서 사용할 타입을 내부에서 지정하지 않고 외부에서 지정하도록 하는것입니다

그렇다면 내부에서는 지정하지 않아놨겠죠?ㅎㅎ

 

저번에 보았던 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
복사했습니다!