본문 바로가기

자료구조4

java #5 [Stack] Stack 밑이 막힌 병에 블럭을 하나씩 쌓아가는 형태를 가진 자료구조입니다. LILO(Last In Last Out)이라는 성격을 띠고 있습니다. 내용 메서드 비고 주입 push(Object o) 가장 위에 값 주입 추출 pop() 가장 위에 있는 값 추출 후 확인 확인 peek() 가장 위에 잇는 값 확인 포함 확인 search(Object o) 없는 경우 -1을 반환 빈 자료구조 확인 empty() 비어 잇는 경우 true, 반대의 경우 false 반환 2022. 11. 2.
[자료구조] Priority Queue는 뭔가요? Queue만 쓰면 안되나요? Queue도 List처럼 LinkedList(조회 보다는 수정에 효율이 좋은 자료 구조), 기본 구조(FIFO)를 바탕으로 특수한 상황에 맞춰 사용할 수 있도록 추가적인 자료구조를 찾아 볼 수 있습니다. ArrayBlockingQueue LinkedBlockingQueue PriorityBlockingQueue DelayQueue LinkedTransferQueue SynchronousQueue ConcurrentLinkedQueue ... 여러가지가 있겠지만 제가 주로 사용하던 자료구조를 들고 왔습니다. -> PriorityQueue 사용 이유는 즉슨 데이터가 들어가는 순간 Queue 내부에서 기본 우선순위(작은값 >>> 큰값)를 따라 정렬이 이루어 집니다. Priority.. 2022. 8. 18.
java #4 [Queue, Dequeue] Queue 공장에서 생산라인의 제품들이 원료가 들어가고 제품이 나오는 것처럼 List 보다 Queue를 사용하는 경우가 종종 생깁니다. 특히나 순서대로 데이터를 뽑아서 사용 할 때에는 더 유용하게 사용합니다. Dequeue Queue와 성질은 같지만 양 방향으로 데이터를 받아서 사용 가능합니다. 위의 두개의 자료 구조 모두 아래와 같이 사용합니다. Exception null or Queue Value 주입 add offer 추출 remove poll 확인 element peek 사실 저는 잘 헷갈려서 쓸때마다 찾아보는건 안 비밀.... 2020. 7. 8.
java #3 [ArrayList, LinkedList, SynchronizedList] ArrayList java Collection 객체에서 제공하는 가장 대표적인 List 형태의 자료구조 입니다. 배열의 값들이 메모리에 이어져 나열됩니다. ArrayList 특성상 이어 쓰고 읽기에 가장 적합한 구조를 가지고 있습니다. LinkedList ArrayList와는 조금 다르게 각각의 하위 단위의 값들이 다음 값의 주소를 내부적으로 가지고 있습니다. 따라서 서로 이어 쓰거나 중간의 내용을 삭제 할때는 빠른 속도나 안정성이 주어지지만 읽기에는 다음 값의 주소를 찾는 시간 때문에 ArrayList보다 시간이 더 걸리고 데이터가 많아지면 많아질수록 성능은 보장 할 수 없습니다. SynchronizedList 마지막으로 이전 포스트에서 ConcurrentHashMap과 동일하게 멀티 스레드 환경에서 .. 2020. 7. 6.