본문 바로가기

반응형

프로그래밍/Java

(54)
Set과 Queue -Reboot(4) 학습목표 Set이 무엇인지 Queue가 무엇인지 왜 Set 을 써야하는지 왜 Queue를 써야하는지 Set은 어디에 쓰이는지 Queue는 어디에 쓰이는지 Set과 다른 자료구조와의 차이점은 무엇인지 Queue의 다른자료구조와의 차이점은 무엇인지 Set을 구현한 구현체들은 무엇이 있고, 각 차이점은 ? Queue를 구현한 구현체들은 무엇이 있고, 각 차이점은? Queue란 무엇인가?? 큐는 FIFO의 용도로 사용한다. Fist In First Out의 약자로 먼저 들어온 애가 먼저 나가는 것을 말한다. 선입선출 구조이기 떄문에 서비스 대기열(버퍼)같은 경우에 사용하게 된다. Queue를 왜? 어디에 써야하는가? 앞서 말한 예시와 같이 서비스 대기열(버퍼)를 구현할 때 사용될수 있으며, 순서를 보장해야할때 ..
캐시 교체알고리즘 과 상황별 효율성 학습목표 LRU캐시 알고리즘외에 다른 캐시알고리즘은 어떤것이 있는지 알아보자. 찾아본 캐시알고리즘은 어떤 방식으로 캐시를 교체할까?? 알아본 캐시알고리즘들은 어떤상황에 쓰면 더 효율적일까?? 캐시알고리즘의 종류 FIFO(First In First Out) LRU(Least Recently Used) LFU(Least Frequently Used) MFU(Most Frequently Used) NUR(Not Used Recently) SCR(Second Chance Replacement) Random FIFO 가장 간단한 알고리즘으로, 메모리에 올라온지 가장 오래된 페이지를 교체한다. 각 페이지가 올라온 시간을 기록하거나, 큐에 저장하는 방식등으로 구현 https://medium.com/pocs/페이지-교..
Map Map은 왜쓰였나? 왜 만들어졌나?? HashTable Hash Java Map buckets 해당 포스트의 작성목적 컬렉션중 마지막인 Map에 대해서 알아보자! Map이 무엇인지, 또 왜 만들어지고 쓰이는지 알아보자 Map?? 자바에서 Map은 Key와 Value값으로 이루어져있다. Map에서 다른데이터와 구분하기 위해서 '값'의 이름을 key라고 보면 될것이다. 예를들어 A 핸드폰번호에 대한 주인은 A-라는 사람 한명뿐이다. 이때 A핸드폰 번호가 key, A-라는 사람은 값이 된다. 이 키는 Map안에서 중복될수 없다. 만일 value(값)이 같아도 key가 다르면 Map은 이를 다른것으로 취급한다.(마치 객체의 값은 같지만, 주소값은 다른 참조자료형의 객체들 같다.) 이런 Map의 특성은 다음과 같..
Set과 Queue -Reboot(3) 학습목표 Set이 무엇인지 Queue가 무엇인지 왜 Set 을 써야하는지 왜 Queue를 써야하는지 Set은 어디에 쓰이는지 Queue는 어디에 쓰이는지 Set의 다른 자료구조와의 차이점은 무엇인지 Queue의 다른자료구조와의 차이점은 무엇인지 Set을 구현한 구현체들은 무엇이 있고, 각 차이점은 ? Queue를 구현한 구현체들은 무엇이 있고, 각 차이점은? LinkedHashSet LinkedHashSet이란? 왜? 어디에 쓰이는가? LinkedHashSet의 특징 과 구현원리 LinkedHashSet이 성능이 제일 안좋다고 했는데 왜 일까?? LinkedHashSet이란? LinkedHashSet은 순서가 없고 중복이 없는 Set의 특징에서 조금 다르다. 중복은 허용하지 않지만, 입력된 순서를 기억하..
Vector와 Hashtable은 왜 안쓰일까? 학습목표 Vector와 대체제는 무엇이 있을까?? Vector와 대체제의 구별되는 특징 그래서 Vector를 왜? 안써야 하는가? Hashtable과 대체제는 무엇이 있을까? Hashtable과 대체제의 구별되는 특징 그래서 Hashtable은 왜? 안써야 하는것일까? Vector란? Vector는 List인터페이스를 구현한 클래스로 List의 특징을 그대로 가지고 있다. Vector는 내부적으로 배열을 선언해 List를 구현하고 있다. ArrayList와 같은 방식으로 구현 하고 있다. 즉 Vector를 쓰지않고 ArrayList를 써도 무관하다는 것이다. Vector VS ArrayList 그렇다면 Vector와 ArrayList의 차이는 무엇일까?? 그것은 바로 구현방식의 차이에 있다. 아래의 코드..
Set과 Queue -Reboot(2) 미완 학습목표 Set이 무엇인지 Queue가 무엇인지 왜 Set 을 써야하는지 왜 Queue를 써야하는지 Set은 어디에 쓰이는지 Queue는 어디에 쓰이는지 Set의 다른 자료구조와의 차이점은 무엇인지 Queue의 다른자료구조와의 차이점은 무엇인지 Set을 구현한 구현체들은 무엇이 있고, 각 차이점은 ? Queue를 구현한 구현체들은 무엇이 있고, 각 차이점은? TreeSet TreeSet은 무엇인지? TreeSet은 왜, 어디에 쓰이는지? TreeSet과 HashSet의 차이점?! TreeSet 클래스의 특징과, 구현원리 이진탐색트리 Red-Black Tree TreeSet을 파해쳐 보자 TreeSet은 JDK1.2부터 제공되고 있으며,HashSet과 마찬가지로 Set을 구현한 클래스다. HashSet과 ..
ArrayList VS LinkedList -addOn(1) 학습목표 ArrayList의 시간복잡도 LinkedList의 시간복잡도 ArrayList의 구현방식과 그에따른 시간복잡도 ArrayList는 내부적으로 배열을 이용해 List를 구현하므로 배열의 특징을 그대로 지니고 있다. 이점을 명심하고 생각해보자! 데이터 조회 ArrayList클래스의 데이터 조회 코드를 살펴보자. 인덱스를 알고있다는 가정하에... public E get(int index) { Objects.checkIndex(index, size); return elementData(index); } 데이터 추가 단순 add()는 생략하도록 한다. 배열에 원소를 추가하는 작업일 뿐으로, O(1)이다. public void add(int index, E element) { rangeCheckForAd..
Set과 Queue -Reboot(1) 학습목표 Set이 무엇인지 Queue가 무엇인지 왜 Set 을 써야하는지 왜 Queue를 써야하는지 Set은 어디에 쓰이는지 Queue는 어디에 쓰이는지 Set의 다른 자료구조와의 차이점은 무엇인지 Queue의 다른자료구조와의 차이점은 무엇인지 Set을 구현한 구현체들은 무엇이 있고, 각 차이점은 ? Queue를 구현한 구현체들은 무엇이 있고, 각 차이점은? Set은 무엇일까? Set은 Collection을 확장한 인터페이스 중 하나이다. Set은 순서가 없고, 중복을 허용하지 않는다. 어떤 데이터가 있는지만 확인할 때 주로 사용되는 자료구조 이다. Set은 어디에 사용될까? Set은 Array나 List와 달리 '순서'가 없다. 그렇기 때문에, 단순히 해당 데이터가 자료구조에 있는지? 없는지? 를 파악..

반응형