2020. 3. 16. 13:04ㆍ자바 Java/자바 공부 java study
왜 제네릭을 사용해야 하는가?
제네릭 타입을 이용함으로써 잘못된 타입이 사용될 수 있는 문제를 컴파일 과정에서 제거할 수 있다.
제네릭은 클래스와 인터페이스, 메소드를 정의할 때 타입(type)을 파라미터(parameter)로 사용할 수 있도록 한다.
제네릭(Generic)은 코드블럭 내부에서 쓸 자료형을 외부에서 지정하는 기법을 뜻한다. 여러가지 자료형을 허용하고 싶을 때 Object로 선언해버리면 깔끔하지만, 그렇게하면 원하지 않는 자료형이 입력되었을 때의 오류를 컴파일 시점에 잡아낼 수 없다.
장점1. 컴파일 시 강한 타입 체크를 할 수 있다.
- 실행시 타입 에러가 나는 것보다 컴파일 시에 미리 타입을 강하게 체크해서 에러를 사전에 방지
장점2. 타입 변환(castring)을 제거한다.
-
비제네릭 코드는 불필요하게 타입 변환을 하기 때문에 프로그램 성능에 악영향을 미친다.
제네릭 타입(class, interface)
제네릭 타입은 타입을 파라미터로 가지는 클래스와 인터페이스를 말한다.
클래스 또는 인터페이스 이름 뒤에 "<>"부호가 붙고, 사이에 타입 파라미터가 위치한다.
일반적인 코드를 작성하고 이 코드를 다양한 타입의 객체에 대하여 재사용 하는 프로그래밍 기법
제네릭은 컬렉션 라이브러리에 많이 사용
기존의 방법
일반적인 객체를 처리하려면 object 참조 변수를 사용
Object 참조 변수는 어떤 객체이던지 참조 할 수 있다.
Car.java
--> Car1 c1=new Car();
Object c2=new Car(); 이렇게도 만들수 있다는 의미이다.
<T> 는 제네릭을 이용했다는 의미이다.
T에는 타입이 들어올 것이다.
컬렉션
자료구조로는 리스트, 스택, 큐, 집합, 해쉬테이블 등이 있다.
리스트: 순서가 있는 데이터들의 집합 (인덱스)
스택: 순서있는 데이터들의 집합을 LI,FO(방식으로 관리하는 자료 구조)
LI,FO(last in first out)
큐: 순서가 있는 데이터들의 집합을 FI,FO방식으로 관리하는 자료구조
FI,FO(first in, first out)
set: 순서가 없는 데이터들의 집합 (중복 없음)
키랑 밸류로 이루어져 있다.
list 인터페이스
arraylist : 데이터가 삽입, 삭제 될때마다 새로운 배열 생성 -> 잦은 탐색의 사용에 유리
linkedlist : 데이터가 삽입, 삭제될때 해당 칸만 추가/삭제하고 위치만 기억 -> 잦은 수정의 사용에 유리
링크드인리스트는 한개가 두칸으로 나눠져 있고
한 칸에는 값 다른 칸에는 다음으로 연결될 주소값이 들어가 있다.
값 | 주소 |
hashmap 은 hash 와 map 이 합쳐진 것.
hash 방식으로 처리할 거다 라는 의미
'자바 Java > 자바 공부 java study' 카테고리의 다른 글
Hashmap(해쉬맵) -미완성 (0) | 2020.03.16 |
---|---|
ArrayList, Linked List -미완성 (0) | 2020.03.16 |
템플릿 메소드 패턴 (template method pattern) (0) | 2020.03.13 |
인터페이스 (interface) (0) | 2020.03.12 |
추상클래스(abstract class), 익명클래스(anonymous class) (0) | 2020.03.12 |