본문 바로가기

JAVA 자료구조3

[면접을 위한 CS 전공지식 노트][자료구조] Hash Table 1. 해시 테이블이란? 해시 테이블은 데이터를 효율적으로 저장하고, 검색하기 위한 자료구조로 키(key)와 값(value)을 쌍으로 하여 데이터를 관리한다. 해시테이블은 해시 함수를 사용하여 키를 해시값으로 변환하고 이를 기반으로 저장할 배열의 인덱스를 결정하여 데이터를 저장하거나 검색한다. - 해시 테이블의 주요 특징 1) 해시 함수: 해시테이블은 해시 함수를 이용하여 키를 해시 값으로 변환한다. 해시 함수는 임의의 길이를 가진 데이터를 고정된 길이의 값으로 매핑하는 함수이다. 이 때 동일한 키는 항상 동일한 해시값으로 매핑되어야 한다. 해시 값은 배열의 인덱스와 연결되며, 이를 통해 데이터가 저장되거나 검색된다. 2) 해시 충돌: 해시 함수의 특성상 서로 다른 데이터가 같은 해시 값으로 매핑 될 수 .. 2023. 8. 11.
[면접을 위한 CS 전공지식 노트][자료구조] Set 1. Set이란? 자료구조인 SET은 수학에서의 집합을 구현해놓은 것이다. 집합은 중복되지 않는 원소들의 모임으로 수학적인 집합 개념을 컴퓨터 과학의 문제에 적용하기 위해서 만들어진 자료구조 이다. Set은 다음과 같은 특징을 가지고 있다. SET의 주요 특징 1) 고유한 원소: Set은 각 원소가 중복되지 않는다. Unique한 원소. 2) 순서 없음: Set에서는 원소의 순서를 보장하지 않는다. 순서가 없다. 3) 집합 연산: Set은 원소들 간의 합집합, 교집합, 차집합 등과 같은 집합연산을 지원한다. 2. JAVA에서의 Set 1) HashSet 가장 일반적으로 사용되는 Set 구현체 이며, 해시테이블을 기반으로 구현되어 있다. HashSet의 주요 특징 - 순서를 보장하지 않는다. - 추가, 삭.. 2023. 8. 11.
[면접을 위한 CS 전공지식 노트][자료구조] Map 0. 개요 이번 글에서는 키를 통해 검색할 경우에 자주쓰는 Map에 대해서 공부한 내용을 정리하고자 한다. 나 같은 경우에는 JAVA 코딩을 할 때에 map을 사용한다고 하면 HashMap만을 그냥 사용해왔는데, 공부해보니 그 외에도 코딩할 때 사용하면 유용할만한 자바에서 제공해주는 유용한 Map들이 존재했다. 이 글에서는 그것들에 대해서 기록해놓고 계속해서 볼 수 있도록 하려고 한다. 1. Map이란? 프로그래밍을 한번이라도 접해 본 사람이라면 각각의 언어마다 부르는 이름은 조금 다를 수도 있지만, Map 형식의 데이터를 이미 다뤄봤을 것이다. Python에서는 Dictionary라는 데이터타입으로 불리우기도 하고, API를 이용해본 사람들이라면 JSON(JavaScript Object Notation.. 2023. 8. 11.