전체 글 48

[JAVA] Hash

Hash란?해시(Hash)는 데이터를 고정된 크기의 고유한 값(숫자)으로 변환하는 함수 또는 그 결과 값을 의미합니다.이때 사용되는 함수는 해시 함수(Hash Function)라고 부릅니다. 해시 함수의 특징Deterministic같은 입력이면 항상 같은 출력Fast계산이 빠르다Uniformity해시값이 고르게 분포되면 성능이 좋다Collision 가능성 존재서로 다른 입력값이 같은 해시값을 가질 수 있음One-way (암호학적 해시)입력값을 추정하기 어렵게 설계됨 (SHA-256 등) 해시의 사용처해시 테이블 구현 (HashMap, HashSet, Hashtable)암호학 (비밀번호 저장 시 해싱: SHA-256, bcrypt)데이터 무결성 검증 (파일 해시: MD5, SHA)캐시 키 생성블록체인 (블..

JAVA 2025.07.16

[JAVA] List vs Set

List : 리스트는 요소들의 순차적인 컬렉션이다. 순서를 가지며 같은 요소가 여러번 들어 갈 수 있다.특징 - 순서 유지 : 리스트에 추가된 요소는 특정한 순서를 유지 한다. - 중복 허용 : 리스트는 동일한 값이나 객체의 중복을 허용 한다. - 인덱스 접근 : 리스트의 각 요소는 인덱스를 통해 접근 가능 하다. Set : 유일한 값의 요소들의 컬렉션이다.특징 - 유일성 : 셋에는 중복된 요소가 존재하지 않는다. - 순서 미보장 : 요소들의 순서를 보장하지 않는다. 즉 입력 순서대로 출력 순서를 보장하지 않는다. - 빠른 검색 : 셋은 요소의 유무를 빠르게 확인할 수 있도록 최적화 되어 있다.

JAVA 2025.07.16

[JAVA] ArrayList 란?

ArrayList란?ArrayList는 배열을 기반으로 한 컬렉션의 하나이며, 데이터를 추가, 삭제시 내부에서 동적으로 배열의 길이를 조절해준다.ArrayList 특징ArrayList는 내부적으로 연속된 주소를 가진 배열을 이용하는 컬렉션연속적인 데이터 리스트이다.ArrayList 클래스는 내부적으로 Object[] 배열을 이용해 요소를 저장한다.배열을 이용하기 때문에 인덱스를 이용해 요소에 빠르게 접근할 수 있다.크기가 고정되어있는 배열과 달리 데이터의 크기에 따라 공간을 늘리거나 줄인다.그러나 배열 공간이 꽉찰 때마다 배열을 복사하는 방식과 사이즈를 늘리며 증가하는데, 이때마다 지연이 된다.데이터를 리스트 중간에 삽입/삭제하는 경우에 중간에 빈 공간이 생기지 않도록 요소들의 위치를 앞뒤로 이동시키기때..

JAVA 2025.07.16