JAVA(77)
-
제네릭
제네릭이란?사용할 타입을 인스턴스 생성 시점에 결정하는 기술 .생성 시점에 클래스 내부에서 사용할 타입을 결정하는 기술이다.범용적으로 사용할 수 있어 Generic 이다. 제네릭이 필요한 이유1. 코드 안정성을 위해2. 코드 재사용성을 위해 Integer[] values;String[] values; 값을 담을 자료구조에 타입이 고정 돼 있다면, 용도는 명확하지만 당연스레 재사용성이 떨어진다.public class ex { private Object[] objectValues; private T[] genericValues; }다형성 활용 Object 를 사용해 다형성을 살려도 되지만 문제가 발생한다.Object 에는 모든 값이 담기므로,1. String, Integer, User 등 다양한 ..
2024.07.30 -
Deque
Dequedouble Ended Queue 의 약어이다. 구현체Deque의 대표적 구현체는- ArrayDeque- Linkedlist 등이 있다. Stack Vs DequeQueue는 뒤에서 넣으면 앞으로 나오는 구조를 갖고 있는데,한쪽에서는 넣고, 한쪽에서 빼기만 하면 역할은 명확하나, 유연성이 떨어진다.양방향에서 넣고, 빼고 넣을 수 있는 Queue. 그것이 Deque 이다. 앞선 글에서 Stack 쓸 바에 Deque 쓰는 게 낫다. 라고 했는데그 이유는 아래와 같다.앞서 말했듯, Stack은 Vector 자료구조를 상속한다. Vector 는 옛 언어들과의 호환성을 위해 만들어진 것으로, 이제 쓰이지 않는다.앞, 혹은 뒤에서만 넣기, 빼기를 한다는 것은 Stack 의 Last In First Out ..
2024.07.17 -
Queue
QueueStack 이 FIFO 이었다면, Queue 는 FIFO(First In First Out) 이다.Collection 중 Queue 인터페이스를 상속하며, Queue 밑으로, Deque 인터페이스, ArrayDeque, LinkedList 등의 구현체가 있다.
2024.07.16 -
Map
MapKey, Value 의 쌍을 저장하 자료구조key값을 데이터 접근 수단으로 사용한다. 특징- key는 중복을 허용하지 않는다.- value 의 중복은 허용된다.- Map은 순서를 보장하지 않는다.- List, Set 과 다르게 Collection을 상속하지 않는다. 구현체- HashMap - LinkedHashMap- TreeMap 등 Map Vs Set공통점- 순서 보장 안 함- 중복 허용 안 함 (Map 의 경우, Key가 그렇다) 차이점- Key와 Value 쌍으로 이루어져 있는지 아닌지 차이 HashMap 이 가장 보편적으로 쓰인다.
2024.07.16 -
Set
Set (Interface)쉽게 말해, 집합이다. 특징중복이 허용되지 않는다.순서를 보장하지 않는다. (단, LinkedHashSet은 연결 구조를 통해 순서를 보장한다.) 구현체구현체로는 아래와 같은 것들이 있다.HashSetLinkedHashSetTreeSetHashSetHash 알고리즘을 활용하는 Set 자료구조이다. Hash 알고리즘이란?자바에서 hash알고리즘이란, 데이터를 숫자화 하여, 그 값을 자료구조의 인덱스(Index)로서 활용하는 기법이다. 특징동일한 자료에 대해, 동일한 hash값이 나온다.불필요한 저장공간 생성(메모리 할당)을 피하기 위해 % CAPACITY 연산이 수행된다. 장점인덱스를 활용하게 되므로, 데이터 접근 속도가 빠르다. 단점Hashing 과정에서 동일한 hash값이 ..
2024.07.16 -
ArrayList vs LinkedList
ArrayList LinkedList 데이터 저장소Object array[ ] 노드 Node - E item; 조회 처음O(1) O(1) 중간O(1) O(n) 끝O(1) O(1) 데이터 조작 추가/제거 처음O(n) O(1) 중간접근+ 추가제거 + 밀기O(1) O(1) + O(n)-> O(n) 접근 + 추가/제거O(n) + O(1) -> O(n) 끝O(1) O(1) 수정 처음O(1) O(1) 중간O(1) O(n) 끝O(1) O(1) ArrayList 는 List 내의 배열을 사용한다.따라서, 배열 중간에 데이터를 추가/제거 하지 않는다면 배열 조작만으로 대부분의 작업이 가능하다.반면, LinkedList 는 E item 을 품는 Node 인스턴..
2024.07.05