본문 바로가기
Java

자바 요약 정리 - 컬렉션

by sycareer 2021. 7. 8.

8. 컬렉션

1) 컬렉션

- 컬렉션 객체는 여러 원소들을 담을 수 있는 자료구조를 뜻한다.

- 배열과의 차이점 : 정적 메모리 할당이 아닌 동적 메모리 할당. à 공간이 필요한만큼 계속 추가할 수 있음.

 

2) Collection 인터페이스

(1) Set : 순서를 유지하지 않는 데이터의 집합. 데이터의 중복 허용하지 않음.

           - HashSet

           가장 빠른 임의 접근 속도. 순서 예측할 수 없음. 중복을 자동으로 제거해줌.

           - TreeSet

           정렬방법 지정 가능.

(2) List : 순서가 있는 데이터의 집합. 데이터 중복 허용.

           - LinkedList

           양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 데이터의 위치정보만 수정하면 되기에 유용함.

           스택, , 양방향 큐 등을 만들기 위한 용도로 쓰임.

           - Vector

           과거에 대용량 처리를 위해 사용했으며, 내부에서 자동으로 동기화처리가 일어나 비교적 성능이 좋지 않고 무거워 잘 쓰이지 않음.

           - ArrayList

           단방향 포인터 구조로 각 데이터에 대한 인덱스를 가지고 있어 조회 기능에 성능이 뛰어남.

 (3) Map : (Key), (Value)의 쌍으로 이루어진 데이터 집합. 순서 유지 안됨. (Key) 중복 허용 안됨. (Value) 중복 허용함. Key : Set 방식, Value : List 방식으로 저장됨.

           - HashTable

           HashMap 보다는 느리지만 동기화 지원. null불가

           - HashMap

           중복과 순서가 허용되지 않으며 null값이 올 수 있다.

           - TreeMap

           정렬된 순서대로 키(Key)와 값(Value)을 저장하여 검색이 빠름

 

3) 컬렉션의 장점

- 저장하는 크기의 제약이 없다.

- 추가, 삭제, 정렬 등의 기능처리가 간단하다.

- 여러 타입을 저장할 수 있다. 객체만 저장되기 때문에 기본 자료형은 Wrapper클래스로 저장됨.

 

4) ArrayList

           - add( ) : 데이터 추가. Object 타입으로 들어감. 기본 자료형 추가시 내부적으로 AutoBoxing에 의해 WrapperClass로 변형되어 객체로 들어감.

           - get(index) : ArrayList 값 추출

           - remove(index) : 원하는 인덱스의 값 삭제

           - add(인덱스, 추가할 값) : 원하는 인덱스 중간에 값 추가

           - set(인덱스, 변경할 값) : 원하는 인덱스 값 수정

           - indexOf(찾을 값) : 찾고자 하는 값의 인덱스 확인

           - contains(찾을 값) : 찾을 값 포함했는지 확인 (반환값 boolean)

 

5) 제네릭스<>

- 제네릭스 사용하는 이유 : 명시된 타입의 객체만 저장하도록 제한을 두기 위해.

                                   컬렉션에 저장된 객체를 꺼내서 사용할 때 매번 형변환하는 절차를 없애기 위해.

 

6) Comparator : Compare( )

- 원하는 정렬 기준대로 설정 (사용자 정의)

- 정렬 기준을 여러 개 할 수 있음.

- 제네릭이 적용된 인터페이스로 제네릭을 적용하고 메소드를 오버라이딩하면 따로 메소드 안에서 다운캐스팅이 필요 없다.

 

7) Comparable : CompareTo( )

- 클래스의 기본 정렬 기준을 설정

- 정렬 기준 하나만 사용 가능. 각 클래스마다 규칙 하나씩.

- int 타입을 반환. 파라미터로 비교 대상이 되는 객체가 들어오게 된다.

- A.compareTo(B) 일 때, A<B 이면 음수 리턴, A=B 이면 0 리턴, A>B이면 양수 리턴.

 

8) Properties

- 해당 프로그램이 기본적으로 가지고 있는 정보들을 .properties 확장자 문서로 저장해놓으면

Key Value 모두 문자열이기 때문에 개발자가 아닌 일반인 관리자가 해당 문서를 다루기 쉽다.

- Map 컬렉션에서 String타입으로 쓰임.

- xml 파일로 저장할 수 있는 메소드를 따로 제공.

xml 파일은 프로그래밍 언어 간에 호환이 쉽다.

, 자바에서 작업하고 xml파일로 저장하면 C언어에서 불러들여 사용할 수 있다.

'Java' 카테고리의 다른 글

자바 요약 정리 - 객체배열  (0) 2021.07.12
자바 요약 정리 - 배열  (0) 2021.07.08
자바 요약 정리 - API  (0) 2021.07.06
자바 요약 정리 - 다형성  (0) 2021.07.06
자바 요약 정리 - 상속  (0) 2021.07.06