본문 바로가기

복습

(28)
[Java 복습] 컬렉션 프레임워크 전체 정리 자바 컬렉션 프레임워크 주요 기능   자바 컬렉션 프레임워크는 데이터 그룹을 저장하고 처리하기 위한 통합 아키텍처를 제공한다. 이 프레임워크는 인터페이스, 구현, 알고리즘으로 구성되어 있으며, 다양한 타입의 컬렉션을 효율적으로 처리할 수 있게 해준다. 여기서 컬렉션이란 객체의 그룹이나 집합을 의미한다.  Collection 인터페이스의 필요성 Collection 인터페이스는 자바 컬렉션 프레임워크의 가장 기본적인 인터페이스로, 자바에서 데이터 그룹을 다루는 데 필요한 가장 기본적인 메서드들을 정의한다. 그리고 다양한 컬렉션 타입들이 공통적으로 따라야 하는 기본 규약을 정의한다. List , Set , Queue 와 같은 더 구체적인 컬렉션 인터페이스들은 모두 Collection 인터페이스를 확장 (ext..
[Java 복습] 컬렉션 유틸 목차컬렉션 유틸 - 정렬컬렉션 생성불변 컬렉션 가변 컬렉션 전환멀티 스레드 동기화 컬렉션 유틸 컬렉션을 편리하게 다룰 수 있는 다양한 기능을 알아보자. 정렬public class CollectionsSortMain { public static void main(String[] args) { List list = new ArrayList(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); Integer max = Collections.max(list); Integer min = Collections.min(list); S..
[Java 복습] 정렬 Comparable, Comparator 목차정렬정렬 알고리즘비교자 Comparator비교자 Comparable직접 만든 객체의 정렬Tree 구조와 정렬 정렬public class SortMain1 { public static void main(String[] args) { Integer[] array = {3, 2, 1}; System.out.println(Arrays.toString(array)); System.out.println("기본 정렬 후"); Arrays.sort(array); System.out.println(Arrays.toString(array)); }}[3, 2, 1]기본 정렬 후[1, 2, 3]  정렬 알고리즘 정렬은 대략 다음과 같은 방식으로 이루..
[Java 복습] 직접 구현해보는 Iterator 목차순회란?Iteraotor, IterableIterable과 향상된 for문자바가 제공하는 Iterable, Iterator 순회순회라는 단어는 여러 곳을 돌아다닌다는 뜻이다. 자료 구조에 순회는 자료 구조에 들어있는 데이터를 차례대로 접근해서 처리하는 것을 순회라 한다. 그런데 다양한 자료 구조가 있고, 각각의 자료 구조마다 데이터를 접근하는 방법이 모두 다르다. 예를 들어서 배열 리스트는 index 를 size 까지 차례로 증가하면서 순회해야 하고,연결 리스트는 Node.next 를사용해node 의 끝이 null 일 때 까지 순회해야 한다.이렇듯 각 자료 구조의 순회 방법이 서로 다르다.배열 리스트, 연결 리스트, 해시 셋, 연결 해시 셋, 트리 셋 등등 다양한 자료 구조가 있다. 각각의 자료 구조..
[Java 복습] Deque와 Stack, Queue 자료 구조 목차스택 자료 구조큐 자료 구조디큐 자료 구조Deque 구현체와 성능 테스트Deque와 Stack, Queue 스택 자료 구조 스택(Stack) 구조 다음과 같은 1, 2, 3 이름표가 붙은 블록이 있다고 가정하자  이 블록을 다음과 같이 아래쪽은 막혀 있고, 위쪽만 열려있는 통에 넣는다고 생각해보자. 위쪽만 열려있기 때문에 위쪽으로 블록을 넣고, 위쪽으로 블록을 빼야 한다. 쉽게 이야기해서 넣는 곳과 빼는 곳이 같다.  이번에는 넣은 블록을 빼자.  후입 선출(LIFO, Last In First Out) 여기서 가장 마지막에 넣은 3번이 가장 먼저 나온다. 이렇게 나중에 넣은 것이 가장 먼저 나오는 것을 후입 선출이라 하고, 이런 자료 구조를 스택이라 한다. 전통적으로 스택에 값을 넣는 것을 push ..
[Java 복습] Map 개념 뿌시기 목차Map소개Map 사용법Map 구현체Map 구현체 특징HashMap 작동원리 컬렉션 프레임워크 - Map 소개 Map 은 키-값의 쌍을 저장하는 자료 구조이다.키는 맵 내에서 유일해야 한다. 그리고 키를 통해 값을 빠르게 검색할 수 있다.키는 중복될 수 없지만, 값은 중복될 수 있다.Map 은 순서를 유지하지 않는다.  컬렉션 프레임워크 - Map   자바는 HashMap , TreeMap , LinkedHashMap 등 다양한 Map 구현체를 제공한다. 이들은 Map 인터페이스의 메서드를 구현하며, 각기 다른 특성과 성능 특징을 가지고 있다.    HashMap 사용법public class MapMain1 { public static void main(String[] args) { ..
[Java 복습] Set 개념 뿌시기 목차Set 인터페이스Set 구현체트리 구조이진 탐색 트리Set 구현체 특징최적화 자바가 제공하는 Set  Set (세트, 셋) 자료 구조 셋은 중복을 허용하지 않고, 순서를 보장하지 않는 자료 구조이다.   Collection 인터페이스 Collection 인터페이스는 java.util 패키지의 컬렉션 프레임워크의 핵심 인터페이스 중 하나이다. 이 인터페이스는 자바에서 다양한 컬렉션, 즉 데이터 그룹을 다루기 위한 메서드를 정의한다. Collection 인터페이스는 List , Set , Queue 와 같은 다양한 하위 인터페이스와 함께 사용되며, 이를 통해 데이터를 리스트, 세트, 큐 등의 형태로 관리할 수 있다.   Set 인터페이스자바의 Set 인터페이스는 java.util 패키지의 컬렉션 프레임워..
[Java 복습] 직접 구현해보는 Set (feat. hashCode) 목차해시 알고리즘을 사용한 Set 구현문자열은 해시 인덱스로 어떻게 바꿀까?자바의 HashCode 메서드직접 만든 객체 보관제네릭과 인터페이스 도입  직접 구현해보는 SetSet은 중복을 허용하지 않고, 순서를 보장하지 않는 자료 구조이다.  MyHashSetV0의 단점add() 로 데이터를 추가할 때 셋에 중복 데이터가 있는지 전체 데이터를 항상 확인해야 한다. 따라서 O(n)으로 입력 성능이 나쁘다. 중복 데이터가 있는지 검색 O(n) + 데이터 입력 O(1) O(n) contains() 로 데이터를 찾을 때는 셋에 있는 모든 데이터를 찾고 비교해야 하므로 평균 O(n)이 걸린다.이렇게 성능이 느린 MyHashSetV0 를 해시 알고리즘을 사용해서 평균 O(1)로 개선해보자.Set 을 구현하는 방법은..
[Java 복습] 직접 구현해보는 Set (feat. 해시 알고리즘) 목차List, Set의 차이점Set 구현 시작데이터 추가 시 개선 사항해시 알고리즘해시 충돌해시 충돌 구현 리스트(List) vs 세트(Set) 자료 구조에서의 List와 Set은 각각 특정한 방식으로 데이터를 저장하고 관리하는 데 사용된다. 리스트(List)정의: 리스트는 요소들의 순차적인 컬렉션이다. 요소들은 특정 순서를 가지며, 같은 요소가 여러 번 나타날 수 있다. 특징:순서 유지: 리스트에 추가된 요소는 특정한 순서를 유지한다. 이 순서는 요소가 추가된 순서를 반영할 수 있다. 중복 허용: 리스트는 동일한 값이나 객체의 중복을 허용한다. 예를 들어, 같은 숫자나 문자열을 리스트 안에 여러번 저장할 수 있다. 인덱스 접근: 리스트의 각 요소는 인덱스를 통해 접근할 수 있다. 이 인덱스는 보통 0부..
[Java 복습] 자바 리스트의 모든 것 목차자바 리스트Collection 인터페이스List 인터페이스ArrayListLinkedListList 성능 비교 자바 리스트 List 자료 구조 순서가 있고, 중복을 허용하는 자료 구조를 리스트라 한다. 자바의 컬렉션 프레임워크가 제공하는 가장 대표적인 자료구조가 바로 리스트이다. 리스트와 관련된 컬렉션 프레임워크는 다음 구조를 가진다.   Collection 인터페이스 Collection 인터페이스는 java.util 패키지의 컬렉션 프레임워크의 핵심 인터페이스 중 하나이다. 이 인터페이스는 자바에서 다양한 컬렉션, 즉 데이터 그룹을 다루기 위한 메서드를 정의한다. Collection 인터페이스는 List , Set , Queue 와 같은 다양한 하위 인터페이스와 함께 사용되며,이를 통해 데이터를 리..