본문 바로가기

JAVA

[Java] 리스트(List)

ArrayList

읽기(접근 시간) 빠르다.

추가/삭제 느리다.

순차적인 추가/삭제는 빠르다.

비효율적인 메모리 사용

LinkedList

읽기(접근시간) 느리다.

중간 데이터 추가/삭제 빠르다.

단방향이라 데이터가 많을수록 접근성이 떨어진다.

 

doubly linked list

linked list는 단방향이기 때문에 다음 요소에 대한 접근은 쉽지만 이전 요소에 대한 접근은 어려운 점을 보완한 것.

이전 요소에 대한 참조가 가능하게 함

 

doubly circular linked list

첫번째 요소와 마지막 요소를 연결시켜 접근성을 보다 향상시킨 것

 


Stack과 Queue

 

Stack

넣은 순서와 꺼낸 순서가 뒤집어진다.

구현 : ArrayList와 같은 배열기반의 컬렉션 클래스

활용 : 수식계산, 수식괄호검사, 워드프로세서의 undo/redo, 웹브라우저 뒤로/앞으로

 

Queue

순서 변경 없이 꺼내진다.

구현 : 데이터의 추가/삭제가 쉬운 LinkedList

활용 : 최근사용문서, 인쇄작업 대기목록, 버퍼

 

 

'JAVA' 카테고리의 다른 글

[Java] Set  (0) 2023.07.06
[Java] 컬렉션 프레임웍(Collections Framework)  (0) 2023.07.06
[Java] 인터페이스(interface)  (0) 2023.07.06
[Java] 추상클래스(abstract class)  (0) 2023.07.05
[Java] 다형성(polymorphism)  (0) 2023.07.05