1. 순회자바가 제공하는 Iterable, Iteratora. 구조자바 컬렉션 프레임워크는 다양한 자료구조를 제공한다.자바는 컬렉션 프레임워크를 사용하는 개발자가 편리하고 일관된 방법으로 자료구조를 순회할 수 있도록 Iterable 인터페이스를 제공하고, 각각의 구현체에 맞는 Iterator도 다 구현해 두었다.Collection 인터페이스 상위에 Iterable 인터페이스가 있다는 것은 모든 컬렉션을 Iterable과 Iterator를 사용해서 순회할 수 있다는 것을 의미한다.Map의 경우, Key뿐만 아니라 Value까지 있기 때문에 바로 순회할 수 없는 대신, Key나 Value를 정해서 순회할 수 있다.keySet(), values() 메서드를 호출하면 Set, Collection을 반환하기 때문..
Collection
1. Map자바 맵a. 구조맵은 Key-Value의 쌍을 저장하는 자료구조이다.Map 인터페이스Key는 맵 내에서 유일하며, Key를 통해 값을 빠르게 검색할 수 있다.Key는 중복될 수 없지만, Value는 중복될 수 있다.Map은 순서를 유지하지 않는다.자바는 HashMap, TreeMap, LinkedHashMap 등 다양한 Map 구현체를 제공하며, 각 클래스는 Map 인터페이스를 구현하고 각각의 특성을 갖고 있다. b. 주요 메서드Map 인터페이스의 주요 메서드는 다음과 같다.Map은 Key와 Value를 하나로 묶을 때 Entry 객체를 사용한다.참고로, Entry는 Map 내부에 있는 인터페이스이다.Key 목록 조회Map은 Key 중복을 허용하지 않으므로 모든 Key 목록을 조회하는 key..
1. 해시(Hash)리스트(List) vs 셋(Set)리스트와 셋의 차이는 다음과 같다. 셋은 집합을 생각해 보면 더 쉽게 이해할 수 있다. 리스트(List)셋(Set)정의요소들의 순차적인 컬렉션유일한 요소들의 컬렉션순서 유지OX중복 허용OX특징인덱스 접근빠르게 요소 유무 확인예시장바구니 목록, 순서가 중요한 일련의 이벤트 목록회원 ID 집합, 고유한 항목의 집합 해시 알고리즘a. 데이터의 값을 인덱스로 사용하기해시 알고리즘을 사용하면 O(n)의 데이터 검색 성능을 평균 O(1)로 비약적으로 끌어올릴 수 있다.예를 들어, 배열에 있는 요소를 찾기 위해서는 반복문을 통해 배열의 모든 요소를 검사해야 한다. 따라서 배열에서 특정 데이터를 찾는 성능은 O(n)으로 매우 느리다. 대신 배열은 인덱스의 위치를 사..
1. Big O 표기법과 배열Big O 표기법빅오(Big O) 표기법은 알고리즘의 성능을 분석할 때 사용하는 수학적 표현 방식이다. 빅오 표기법을 통해 데이터 양의 증가에 따른 성능 변화 추세를 비교할 수 있다. 데이터가 클수록 추세를 볼 때 상수는 크게 의미가 없어지기 때문에 상수를 제거해서 표현한다.O(1)입력 데이터의 크기에 관계없이 알고리즘의 실행 시간이 일정하다.ex. 배열에서 인덱스를 사용하는 경우O(log n) = logarithmic알고리즘의 실행 시간이 입력 데이터 크기의 로그에 비례한다.ex. 이진 탐색O(n) = linear알고리즘의 실행 시간이 입력 데이터 크기에 비례한다.ex. 배열의 검색, 배열의 모든 요소 순환O(n log n) = logarithmic(hybrid) linea..