데이터의 저장구조에 따른 인터페이스 분류

 

1. List 인터페이스

데이터가 중복 저장이 가능하며 저장되는 순서(인덱스번호로 구분)가 있다

0 1 2 3
test1 test2 test2 test3

예) Vector, ArrayList, LinkedList

                          --------------> jsp(회원가입-> 우편번호 검색) 등 할때 사용할 예정

 

 

2. Set 인터페이스

순서가 없이 데이터를 저장하는 형태로, 동일한 데이터가 들어오면 객체들을 구별할 수 없다. 즉 중복 저장이 안된다.

인덱스가 없어 위치 기반으로 데이터를 가져올 수 없다. 출력방식으로는 Iterator 객체를 사용하거나 인덱스를 사용하지 않는

향상된 for문을 사용하면 된다.

예) HashSet, TreeSet

 

 

3. Map 인터페이스

(key, value) 쌍으로 저장된다, key는 중복이 안되지만 value는 중복 가능하다

키를 이용하여 검색이 가능하다-> 검색속도가 가장 빠르다

key value
1 test1
2 test2

예) HashTable, HashMap

                          --------------> 회원로그인 할때 세션값 저장시 사용할 예정

 


컬렉션의 공통 특성

1. 객체만 저장이 가능(기본자료형은 저장x -> Wrapper 클래스를 이용해야한다)

2. 동적배열의 성격을 가지고 있다(크기가 따로 정해져 있지 않아 자동으로 늘어나거나 줄어든다)

3. 객체를 저장할때 자동으로 Object형으로 변환해서 저장된다(어떤 객체라도 모두 저장이 가능하도록 만들 목적)

4. 저장된 데이터를 꺼내올때 원래의 형으로 형변환시켜야한다

 


자료구조는 다르더라도 공통으로 갖는 추상 메소드(Collection Interface)

데이터 추가: add()

데이터 삭제: remove(삭제할 객체명)

데이터 모두 삭제: clear()

들어가 있는 데이터 크기 지정: size()

데이터가 들어가 있는지 확인: isEmpty()

 


Object 형으로 저장했을때의 단점

기본적으로 모든 객체를 저장이 가능하니까 원하지 않는 객체를 저장할 수도 있다-> 에러를 발견할 수 없음

나중에 데이터를 꺼내올때 에러유발

 

제너릭

형식: 클래스형<저장시킬 자료형> 객체명 = new 클래스형<저장시킬 자료형>();

저장할 자료형을 미리 지정해주는 것

 

제너릭의 사용 

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

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

 

ex) String형만 저장가능한 Vector 클래스 객체 생성

다른 자료형은 v2객체에 들어갈 수 없다

 

 

--다음에 이어서 List, Set, Map 에 관한 포스팅 할 예정입니다.

+ Recent posts