알고리즘 53

[자료구조] HashMap 파헤치기 1 (Linked List + Red Black Tree)

나는 HashMap이 잘 이해되지 않았다. 인덱스가 없으니 배열이나 List에 비해 확실히 더 어렵고 직관적으로 이해하기가 힘들었다. 그래서 오늘 HashMap 자료구조가 어떤 원리로 돌아가는지 파헤쳐볼까 한다. Map Map 자료구조의 특징은 키(Key)와 값(Value)이다. 키를 통하여 값에 접근할 수 있는 구조이다. List나 배열은 인덱스로 접근한다. 인덱스는 단순히 순서만 나타낸다. 그러나 Map의 키는 개발자가 의미를 부여할 수 있다. 현재 내가 포스팅하고 있는 글의 글쓰기 창의 주소이다. Redirect = Write & categoryNo = 6 Redirect와 categoryNo는 Key이다. 그리고 Write와 6은 Value이다. 이런 원리로 key는 개발자가 부여한 의미를 갖고 ..

[자료구조] 컬렉션 프레임워크 - List

컬렉션 프레임 워크란 표준 API로 제공하는 자료구조 라이브러리를 의미한다. 데이터를 저장할 때, 어떤 방식으로 저장하느냐에 따라 프로그램의 성능이 바뀐다. 그래서 상황에 맞는 적절한 자료구조를 선택해야한다. 그래서 JAVA는 자료구조를 만드는데 필요한 다양한 인터페이스를 제공하는데 이를 JAVA 컬렉션 프레임워크라고 부른다. 컬렉션 프레임워크와 관련된 클래스들은 java.util 패키지 안에 들어가 있다. List, Map, Set, Queue 같이 기본적인 자료구조 인터페이스가 java.util 패키지 안에 담겨져 있다. 그러므로 우리는 자료구조를 직접 만들지 않고 API를 갖다가 쓰면 된다. 그럼 이제부터 하나씩 자료구조들을 사용해보자. List 배열이 공간이 한정되어 있는 상자라면 리스트는 구슬을..