자료구조 3

[Design pattern] 디자인 패턴

* 디자인 패턴이란? : 개발 시 , 문제가 발생되고 그 해결방법들을 개발자들끼리 서로 어떤 방식이 좋은지 후기를 남겼을 것이다. 그 후기에서 자주 사용되는 공통된 패턴들이 보이는데 이 패턴들을 모은 것을 디자인 패턴이라고 한다. * 디자인 패턴의 사용 목적 1. 재사용성을 높이고 변경을 쉽게 하도록 하는 구조 2. 커뮤니케이션 비용 절약 3. 설계 과정의 속도를 높일 수 있다 * 용도에 따른 디자인 패턴 패턴 설명 종류 생성패턴 객체 인스턴스를 생성하는 패턴, 클라이언트와 그 클라이언트가 생성해야 하는 객체 인스턴스 사이의 연결을 끊어주는 패턴 싱글톤, 추상팩토리, 팩토리 메소드 등 행동패턴 클래스와 객체들이 상호작용하는 방법과 역할을 분담하는 방법을 다루는 패턴 템플릿 메소드, 싱클톤, 옵저버, 상태..

자료구조/자바 2023.05.08

[자료구조] List, Set, Map

1. List : 순서가 있다. 중복을 허용한다. 크기가 가변적이다. LinkedList ArrayList 구조 양방향 포인터 구조 단방향 포인터 구조 데이터 삽입&삭제 빠름!!! 느림 검색 느림 빠름!!! 2. Map : key -value의 한 쌍으로 이루어진 데이터 집합 key에 대한 중복 X 검색속도 빠름 HashMap HashTable ConcurrentHashMap Thread-safe X O O key와 value Null 값 허용 O X X Synchronized(동기화) X O O * HashMap은 동기화를 보장하지 않아 데이터를 탐색하는 속도가 빠르며 Thread-sefe를 하지않기에 싱글 쓰레드 환경에서 사용하는것이 좋음. * 반면, HashTable 은 동기화를 보장하여 탐색속도가..

자료구조/자바 2022.11.22

[자료구조] 배열(Array)와 리스트(List)

1. 배열(Array) : 같은 타입의 여러 변수들을 하나의 묶음으로 다루는 것. 고정된 크기를 가진다. 인덱스(index)를 가지며 각 원소번호는 0부터 시작. * Array 사용 예시 int[] array = {1,2,3}; String[] weeks = new String[3]; week[0] = "일"; week[1] = "월"; week[2] = "화"; * 배열의 장점 1. 인덱스를 통한 검색 용이. 2. 연속적으로 메모리 관리가 편리. *배열의 단점 1. 크기가 고정되어 있어 한 element가 삭제되면 삭제된 상태를 빈 공간( 메모리 낭비 ) 2. 정적으로 배열의 크기를 컴파일 전 정해야하며 컴파일 후에는 크기를 변동할 수 없음. 2. 리스트(List) : 배열의 단점을 보완한 것. 고정된..

자료구조/자바 2022.11.22