Loading [MathJax]/jax/output/CommonHTML/jax.js

[Java] Collection

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

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

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

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

ArrayList

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

LinkedList

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

Stack

Stack은 FILOFirstInLastOut의 특징을 가지는 자료구조입니다.

Queue

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

Set

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

Map

Map은 키, 값이 있는 자료구조입니다pythondict. 특이점은 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