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)
'Java > Java language' 카테고리의 다른 글
| [JAVA]11. 객체지향 프로그래밍(OOP)의 SOLID 5대원칙? (0) | 2022.03.11 |
|---|---|
| [JAVA]10. 컬렉션 구조 (Set과 Map) (0) | 2021.08.14 |
| [JAVA]8. 컬렉션 구조 (0) | 2021.08.14 |
| [JAVA]7. 가변인자 / static&인스턴스 메소드 / super & super() / final 예약어 (0) | 2021.08.13 |
| [JAVA]6. 배열? (0) | 2021.08.13 |
댓글