본문 바로가기
JAVA-Spring

JAVA 자바 [ 프로그래밍 ] 인터페이스 종류, 컬렉션, 제너릭

by Super Santj 2019. 7. 31.

인터페이스

인터페이스는 자기자신의 객체를 생성할수가 없다. 아래의 경우 객체를 생성할수가 있음.

1. new 연산자를 이용하는 방법

enumeration eu = new Enumeration(); <== 사용 불가한 방법

List list = new List(); <==이렇게도 불가함

가능한 방법은 자식 클래스의 객체를 통해서 얻어오는 방법이 있다.

List list = new ArrayList(); <==가능

2. 메소드의 매개 변수를 이용하는 방법

서블릿 doGet(HttpServeltRequest req,~ )

3. 메소드의 반환형을 통해서 얻어오는 방법 ** 우리가 사용할 방법 **

Enumeration, Iterator 

종류 _

1. Set 인터페이스

-> 데이터가 중복 저장이 안되며, 저장되는 순서가 없다. =>HashSet
-> 항아리 구조 처럼 생각하면 된다.

2. List 인터페이스 -> 중복저장이 가능하고 저장순서(인덱스 번호로 구분)가 있다.
-> Vector==>ArrayList,LinkedList
    ====       =======>jsp (회원 가입->우편번호 검색)

3.Map 인터페이스 -> 표형태로 저장 (키,값) => ex) 사물함 구조와 비슷 -> 값을 저장시 키를 부여 -> 키를 이용하게되는데 이렇게 된다면 빠르게 검색이 가능하고 검색속도가 가장빠르다.
=>HashTable, HashMap => 세션값을 저장시(web)

컬렉션의 공통 특성

1. 객체만 저장이 가능하다.

기본 자료형은 저장이 안되기에 Wrapper 클래스를 이용해야된다.

2. 동적배열의 성격을 가지고 있다. <-> 정적배열(크기가 정해져 있는 배열)

자동으로 늘어나고 삭제가 된다. 즉 자동으로 크기가 줄어든다.

3. 객체를 저장

형이 무조건 Object형으로 변환해서 저장된다. 즉 어떠한 객체라도 다 저장이 가능하도록 만들 목적으로 객체 자동 형변환이 된다.

4. 저장된 데이터를 꺼내올때

이때엔 원래의 형으로 형변환 시켜야 한다. 만약 그러지 못하면 문제가 발생이 되고 자료형이 문제가 발생이 되면(ex Type mismatch가 발생된다.)

Vector v1 예제

v1 예제는 순서에 맞게 벡터에 데이터를 삽입하고 출력하는 예제이다.

Vector v2 예제

v2의 예제는 다양한 값을 약간 새치기 하듯 내가 지정한 순서위치로 데이터를 넣는 방식을 구현한 코드이다.

Vector v2-1 에러방지 예제 "제너릭"

Vector<E>, <저장할 자료형> Vector의 에러 방지 기법 이것이 "제너릭" 이라 칭한다.

기본적으로 모든 객체가 저장이 가능하다 보니, 원하지 않는 객체를 저장할수가 있게되고 이러한 보완점으로 나타난것이 제너릭이다. 제너릭은 내가 원하는 데이터만 입력이 가능하다.

1. 원하지 않는 데이터는 바로 확인이 가능하다.

2. 저장된 데이터 그대로 꺼내올 수가 있다.(객체 명시적인 형변환 없이 그대로 꺼내올수가 있다.)

사용 형식은

클래스형<자료형> 객체명 = new 클래스형<자료형>();

 

'JAVA-Spring' 카테고리의 다른 글

java Slf4j 사용 예제 및 설명  (0) 2023.07.22
Thread  (0) 2019.08.01
JAVA 자바 [ 프로그래밍 ] ArrayList  (0) 2019.07.31
JAVA 자바 [ 객체 지향 프로그래밍 ] 인터페이스  (0) 2019.07.24

댓글