×
Crocus
공부한 내용을 정리하는 블로그로 시작한
Crocus는 2014년 1월 14일 부터 시작하여
현재 월 6만명, 총 2,312,205명의 방문자 수를 기록하고 있습니다.
Donation
이제 많은 사용자들이 이용하는 만큼
더 다양한 서비스 개발/제공을 위해 후원금을 모금하고자 합니다.
후원을 해주시는 분들은 Donators 명단에 성명, 후원금을 기입해드리며
Crocus 블로그가 아닌 다른 곳에 정리해둔 저만의 내용을 공유해 드리고자 합니다.
Account
예금주 : 고관우
신한은행 : 110-334-866541
카카오뱅크 : 3333-01-7888060

👉 후원 페이지 바로가기 Donators
익명 : 5000원(Crocus응원합니다.)
busyhuman: 5000원(유용한 지식 감사합니다.)
익명 : 5000원(알고리즘 학습러)
반응형

Collection 이란?

Collection 객체는 여러 원소들을 담을 수 있는 자료구조를 뜻한다

배열이 가장 기본적인 자료구조이며, DTO 또한 자료를 담는 하나의 방식이라고 볼 수 있다.

 

 

자바에서의 자료구조 유형은 다음과 같다.
- 순서가 있는 목록인 List형
- 순서가 중요하지 않은 목록인 Set형
- 먼저 들어온 것이 먼저 나가는 Queue형
- KEY-VALUE의 형태로 저장되는 Map형

배열과의 차이점은 정적 메모리 할당이 아닌 동적 메모리 할당을 하게 된다.
즉, new int[4]을 하면 4개 공간밖에 못쓰고 미리 선언을 통해 4개의 공간을 만들어야 하지만, collection은 공간이 계속 필요한 만큼 추가될 수 있다.

 

 

 

 

Collection 인터페이스에 선언된 주요 메서드

 

위의 그림을 보면 알 수 있듯이, 컬렉션은 결국 인터페이스이고 아래에서 구현부들이 받아 구현하고 있음을 알 수 있다.

 

 

List 인터페이스

List 인터페이스는 Collection의 다른 인터페이스들과 가장 큰 차이는 배열처럼 순서가 있다는 것이다.

 

위의 그림에서 ArrayList, LinkedList, Vector, Stack가 순서 있는 Collection으로 가장 많이 사용된다.

 

이때 ArrayList와 Vector 클래스는 거의 동일하지만,  

ArrayList는 Thread safe하지 않고, Vector는 Thread safe하다. 

(Thread safe하지 않다는 것은 객체에 여러 명이 달려들어 값을 변경하려고 하면 문제가 발생할 수 있다는 것)

 

Map 인터페이스

Map은 키(Key)와 값(value)으로 이루어져 있다. 

* Map의 주요 특징

- 모든 데이터는 키와 값이 존재한다.
- 키가 없이 값만 저장할 수는 없다.
- 값이 없이 키만 저장할 수도 없다.
- 키는 해당 Map에서 고유해야만 한다.
- 값은 Map에서 중복되어도 전혀 상관 없다.
- 데이터 추가 순서는 중요하지 않다(데이터를 저장한 순서대로 결과가 출력되지 않는다).

 

 

1. HashMap

대부분 HashMap 객체를 생성할 때에는 매개 변수가 없는 생성자를 사용한다. 하지만 HashMap에 담을 데이터의 개수가 많은 경우에는 초기 크기를 지정해주는 것을 권장한다.

HashMap<String,String> map=new HashMap<String,String>();

 


2. TreeMap


TreeMap 클래스는 키와 값을 저장하는 동시에 키를 정렬한다. 정렬되는 순서는 숫자 > 알파벳 대문자 > 알파벳 소문자 > 한글 순이다. 따라서, 정렬을 해야 할 필요가 있다면 HashMap 보다는 TreeMap을 사용하는 것이 더 유리하다.

 

TreeMap<String, String> treeMap = new TreeMap<String, String>();

 

 

 

출처 : https://tenlie10.tistory.com/10

 

[Java | 자바] Collection이란?(1) - 개요

* 본 내용은 <자바의 신>을 참고하여 작성하였습니다. Collection(컬렉션) 자바에서 '목록성 데이터를 처리하는 자료구조'를 통칭한다. 자료구조(Data Structure)는 어떤 정보를 담는 것을 의미하여, 하나의 데이..

tenlie10.tistory.com

 

반응형