Computer Science
-
해시맵 HashMapComputer Science/자료구조 2023. 11. 20. 00:01
Map Interface 순서가 없는 자료형 키 , 값 의 형태로 데이터 관리 대표 구현 클래스 -> HashMap , TreeMap Hash 임의의 길이를 갖는 임의의 데이터를 고정된 길이의 데이터로 매핑하는 단방향 함수 Hashtable , HashMap (+ HashSet) 키 , 값의 형태로 데이터를 관리하는 자료구조 -> 키를 통해 데이터에 빠르게 접근 가능하다. 해싱 : 키를 특정 계산식(해시 함수)에 넣어 나온 결과를 사용하여 값에 접근하는 과정 Hashtable과 HashMap 차이 ( 키 , 값 ) = ( null , null ) Thread - safe Hash table X O ( 멀티스레드에서 좋음 ) Hash Map O X ( 싱글스레드에서 성능 좋음) -> 멀티스레드 환경을 위한..
-
배열 arrayComputer Science/자료구조 2023. 11. 20. 00:01
배열 Array 많은 수의 데이터를 다룰 때 사용 장점 각 데이터와 인덱스의 관계가 1:1 -> 접근 속도가 굉장히 빠른 이유 1 데이터가 메모리상에 연속적으로 저장됨 -> 접근 속도가 굉장히 빠른 이유 2 단점 배열의 생성시 배열의 크기를 지정해야 한다. 데이터의 추가 삭제가 번거로움 -> 가변 길이 배열은 배열의 크기를 변경할 때마다 새로운 배열을 생성 -> 데이터 삭제 시 인덱스를 유지하기위해 빈 공간을 유지하기 때문에 비효율적이다. 자바에서 사용 //1. 기본 자료형 int[] arrIntegerA = new int[3]; int[] arrIntegerB = new int[]{0, 0, 0}; int[] arrIntegerC = {0, 0, 0}; arrIntegerC[2] = 0; arrInte..
-
Queue 큐Computer Science/자료구조 2023. 11. 20. 00:01
큐 Queue 선입선출 = FIFO = LIFO = 들어온 순서대로 나감 Java 큐는 자바에선 인터페이스로 존재하기 때문에 Queue 자체를 사용하려면 Queue 인터페이스를 상속 받아 구현해야 한다. 구현하는 대신에 Queue를 상속받아 활용한 LinkedList를 사용할수도 있다. Q.add( data ) = 큐에 data 입력 Q.poll() = 큐에서 값을 꺼냄 -> 맨 앞에 위치하는 값이 나온다. -> 값을 그냥 삭제하지 않고 들고 나오기 때문에 , 이 값을 사용하려면 적당한 변수에 담아주면 된다. -> int outNum = Q.poll() Q.peek() = 지금 사용 할 수 있는 값(맨앞에 있는 값)을 복사해오는 메서드 Q.contains( data ) = 큐에 data가 들어있는지 확인..
-
Stack 스택Computer Science/자료구조 2023. 11. 20. 00:01
자료구조 첫 번째 학습 주제 : 스택 Stack 후입 선출 형식으로 데이터를 관리하는 자료형이다. First In Last Out : 첫번째로 들어오면 마지막으로 나감 Last In First Out : 마지막에 들어오면 첫번째로 나감 마지막에 들어온 사람이 자리가 없어서 문 앞에 앉아있다가 제일 첫번째로 나감 🤣 Stack은 데이터가 입력된 순서의 역순으로 처리되어야 할 때 사용한다. ex : 함수 콜 스택, 수식 계산, 인터럽트 처리 등등 스택에서 사용하는 용어 void push( data ); : stack에 data 입력 Object peek() : 스택의 top 위치에 존재하는 값을 보여줌. -> top 위치의 값을 복사해온다고 생각하면 좋을것 같다. Object pop() : 스택의 top 위..