본문 바로가기

TIL

TIL) 자바의 컬랙션

컬랙션이란

자바에는 여러 타입의 변수와 이를 쉽게 관리 할 수 있는 컬랙션이있습니다. 이때 컬랙션으로는 다음과 같은 컬랙션이 있습니다.

  • ArrayList
  • Set
  • Map
  • Queue
  • Stack 등

컬랙션의 공통된 특징으로는 배열과는 다르게 사이즈의 제약이 없습니다. 예를 들어 int[10]과 같은 배열은 10개의 자료만 저장할 수 있지만 컬랙션은 추가함수(ex) .add)를 이용하여 많은 자료를 저장 할 수 있습니다. 각 컬랙션은 조금씩 다른 특징을 가지고 있습니다. 그 특징은 다음과 같습니다.

  • ArrayList : list와 같은 방식의 컬랙션입니다.
  • Set : 순서가 없고, 중복이 없다. 중복을 확인하는 것에 특화된 컬랙션입니다.
  • Map : key와 value가 있어서 key에 따른 value를 쉽게 찾을 수 있습니다. 이때, key는 중복될 수 없습니다.
  • Queue : input된 순서대로 output됩니다. 선입선출을 하는 컬랙션입니다.
  • Stack : input된 순서와 반대로 output됩니다. 선입후출을 하는 컬랙션입니다.

실습 중 문제발생

과제에서 list, map set을 이용하여 요리 레시피를 입력받은 순서대로 출력하는 과제를 하는 중에 set에서 문제를 발견했습니다. 이때 LinkedHashSet()이라는 set컬랙션을 발견했습니다.

  • Set<String> set = new LinkedHashSet<>()

이 set컬랙션은 HashSet, TreeSet과 다르게 입력받은 순서대로 정렬되어있다는 장점이 있지만 그만큼 성능이 떨어집니다.

  • HashSet : 기본적인 set과 동일하게 중복 없이 입력을 받고, 정렬에도 순서가 없습니다.
  • TreeSert : 중복 없이 입력을 받고, 사전순서대로 정렬을 합니다.