자료를 어떻게 관리하느냐에 따라 알고리즘도 바뀌고 프로그래밍 방식도 바뀌게 된다. 우리가 지금 사용하고자 하는 자료를 어떤 구조로 갖고 어떤 방식으로 관리할 것인지 정하는 것을 바로 자료구조라고 한다. Array, List, Map이 대표적인 자료구조이다.
자료구조는 위에 서술했듯이 여러 개이고 제각각 쓰임이 다르고 만들어진 형식또한 다르다. 어떤 것이 어떤 경우에 쓰이는지를 이해해야 한다.
배열은 가장 전통적이고 기본이 되는 자료구조이다. 데이터를 순차적으로 저장해 0부터 시작하는 인덱스를 통해 접근할 수 있다.
배열과 유사한 순차적인 자료구조를 제공한다. 데이터 접근을 위해 인덱스를 사용하는 것은 배열과 같으나 배열의 모든 문제점을 해결하고 있다.
데이터를 key:value의 쌍으로 저장하는 방식이다. 키와 값이라는 데이터를 연결하는 것이 매핑이다. 또한, 해싱을 사용하기 때문에 방대한 양의 데이터를 검색하는데 있어서 뛰어난 성능을 보인다.
상자가 쌓여있는 구조처럼 LIFO 형식을 갖는 선형 자료구조이다.
데이터가 저장된 순서대로 출력되는 선입선출(FIFO)형식을 갖는 선형 자료구조이다.
컬렉션 프레임워크는 자바 프로그래밍에서 빠질 수 없는 필수적인 요소이다. 컬렉션은 다수의 데이터, 프레임워크는 표준화된 프로그래밍 방식을 의미하며 컬렉션 프레임워크란 데이터 그룹을 저장하는 클래스들을 표준화한 설계를 뜻한다. 컬렉션 프레임워크를 잘 활용하면 객체 지향적이고 재사용성이 높은 코드를 작성할 수 있다.
인터페이스 | 설명 | 특징 | 구현 클래스 |
---|---|---|---|
List | 순서가 있는 데이터의 집합 | 데이터의 중복을 허용 | ArrayList, LinkedList |
Set | 순서를 유지하지 않는 데이터의 집합 | 데이터의 중복을 허용하지 않음 | Hashset, LinkedHashSet |
Map | 키와 값의 쌍으로 이루어진 데이터 집합 | 순서 유지x, 키 중복x, 값 중복o | HashMap, LinkedHashMap |