본문 바로가기
Java/Java language

[JAVA]9. 컬렉션 구조 -1 (List ) + Stack

by oomm112 2021. 8. 14.

A. 리스트 인터페이스를 상속받는 컬렉션들

1) ArrayList

 - ArrayList는 요소를 추가하면 차례대로 0번 인덱스 위치부터 요소가 추가되는 형태입니다.

 - 그래서 순차적인 접근 또는 뒤에서부터 데이터를 추가 삭제할때 효과적입니다.

( ArrayList는 중간에 요소를 추가 또는 삭제할 경우에 인덱스의 위치에 따라서 관리하기 떄문에,

중간에 요소를 추가하게 되면 뒤의 요소들을 한칸씩 미뤄서 복사하는 작업을 하여야 하기때문에

상대적으로 효율적이지 못하다.)

 

2) LinkedList

 - LinkedList클래스는 Queue인터페이스와 List인터페이스를 구현한 클래스이다.

 - List인터페이스의 기능을 이용하는 방식은 ArrayList와 비슷하나 데이터를 저장하는 방식이 다르다.

 - LinkedList는 이름과 같이 저장되는 요소들은 각 요소들의 이전요소와 다음 요소의 주소를 링크하고 있다.

 (즉, ArrayList와는 다르게 앞뒤 요소의 주소를 링크하고 있으므로 , 중간의 데이터를 수정 삭제시 효율적이다)

 

3) Vector

 - ArrayList와 거의 유사한 형태의 클래스로 크기가 가변적으로 변한다.

 - Vector는 ArrayList와 달리 동기화를 제공하지 않기 때문에 스레드 환경에서는 안전합니다.

 - 하지만 일반적으로 vector는 ArrayList보다 낮은성능을 보여 ArrayList를 사용하는것이 좋습니다.

 

4) Stack

 - Stack의 데이터 저장 구조는 요소를 추가한 방향으로 요소를 추출하는 구조이다.

 - 즉 마지막에 추가한 요소가 먼저 출력되는 저장 구조를 가진다

 - LIFO구조(Last In First Out)

반응형

댓글