[Java] Collection

2024. 2. 7. 13:11Memorizing/Java

728x90

본 포스팅은 Java에서 많이 사용하는 자료 구조인 컬렉션의 종류와 특징에 대해 다룹니다.

본 포스팅에서 다룰 컬렉션의 종류는 아래와 같습니다.

  • ArrayList
  • LinkedList
  • Stack
  • Queue
  • Set
  • Map

ArrayList

ArrayList는 Array와 달리 참조형 변수를 저장하는 동적 배열입니다. 배열의 크기를 미리 정하지 않고, 원소를 추가하거나 뺄 수 있습니다.

LinkedList

LinkedList는 ArrayList와 달리 메모리에 남는 공간을 요청해서 여기저기 나누어서 실제값을 담아놓고, 실제값이 있는 주소값으로 목록을 구성하고 저장합니다. 따라서 ArrayList보다 조회하는 속도는 느리지만, 중간에 값을 추가하는 속도는 더 빠른 특징이 있습니다.

Stack

Stack은 FILO(First In Last Out)의 특징을 가지는 자료구조입니다.

Queue

Queue는 FIFO(First In First Out)의 특징을 가지는 자료구조입니다. 특이점은 Queue는 생성자가 없는 자료구조이기 때문에 생성자가 있는 LinkedList을 통해서 생성할 수 있습니다.

Set

Set은 순서가 없고, 중복 허용이 되지 않는 데이터의 집합입니다. 특이점은 Set은 생성자가 없는 자료구조이기 때문에 생성자가 있는 HashSet을 통해서 생성할 수 있습니다.

Map

Map은 키, 값이 있는 자료구조입니다(python의 dict). 특이점은 Map은 생성자가 없는 자료구조이기 때문에 생성자가 있는 HashMap으로 생성하여 사용할 수 있습니다.

각각의 컬렉션을 선언하는 예시는 아래와 같습니다. 주의할 점은 collection은 참조형 변수를 저장하는 자료구조이기 때문에 기본형 변수인 int, double, char 등 대신 참조형 변수를 사용하여 선언해야합니다. 

ArrayList<Integer> intList = new ArrayList<Integer>(); 
LinkedList<Integer> linkedList = new LinkedList<>();
Stack<Integer> intStack = new Stack<Integer>();
Queue<Integer> intQueue = new LinkedList<>();
Set<Integer> intSet = new HashSet<Integer>();
Map<String, Integer> intMap = new HashMap<>();

 

'Memorizing > Java' 카테고리의 다른 글

[Java] 프로세스와 스레드 - 2  (0) 2024.02.17
[Java] 프로세스와 스레드 - 1  (0) 2024.02.17
[Java] 상속  (1) 2024.02.07
[Java] Class  (0) 2024.02.07
[Java] Array  (0) 2024.02.07