Code States | 컬렉션 프레임워크(1) - List

yeonk·2022년 6월 1일
0

codestates-backend-bootcamp

목록 보기
14/19
post-thumbnail

1. 컬렉션 프레임워크(Collection Framework)


다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합

  • 인터페이스를 사용하여 구현

  • 주요 인터페이스: List, Set, Map

    • Map은 독립된 인터페이스





컬렉션 프레임워크 구조

출처: https://devbox.tistory.com/entry/Java-%EC%BB%AC%EB%A0%89%EC%85%98-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC



  • List

    • 순서 유지 O

    • 중복 저장 O

    • ArrayList, Vector, Stack, LinkedList



  • Set

    • 순서 유지 X

    • 중복 저장 X

    • HashSet, TreeSet



  • Map

    • 키, 값 쌍으로 저장

    • 순서 유지 X

    • 중복 저장 X

    • ArrayList, Vector, Stack, LinkedList






컬렉션 인터페이스 주요 메서드

  • add(), addAll()

  • contains(), containsAll(), iterator(), equals(), isEmpty(), size()

  • clear(), remove(), removeAll(), retainAll()

  • toArray()





2. List<E>


일렬로 객체를 나열해놓은 구조

  • 인덱스 자동 부여 / 인덱스로 객체 관리(검색 및 삭제)

  • ArrayList, Vector, LinkedList, Stack 등의 클래스를 구현할 때 사용됨





메서드

추가/삽입

  • add(인덱스, 요소): 원하는 인덱스에 객체 추가

  • addAll(인덱스, 컬렉션): 원하는 인덱스에 컬렉션 추가

  • set(인덱스, 요소): 주어진 인덱스에 객체 저장



검색

  • get(인덱스): 해당 인덱스에 위치한 객체 반환

  • indexOf(요소): 해당 객체의 인덱스 반환(앞→뒤 방향으로 탐색)

  • lastIndexOf(요소): 해당 객체의 인덱스 반환(뒤→앞 방향으로 탐색)

  • listIterator(): listIterator 반환

  • listIterator(인덱스): listIterator 반환(해당 인덱스부터 탐색)

  • subList(시작 인덱스, 끝 인덱스): 시작 인덱스 부터 끝 인덱스 사이에 있는 객체 반환



삭제

  • remove(인덱스): 해당 인덱스의 객체 삭제 및 반환

  • remove(객체): 해당 객체 삭제



정렬

  • sort(비교자): 해당 비교자로 정렬





3. ArrayList


List 인터페이스로 구현
Vector를 개선한 것으로 기능은 동일하지만 더 많이 사용됨

  • 배열과 유사하지만 생성 시 크기를 고정하지 않는 특징

  • 저장 용량 초과 시 자동으로 용량을 늘림

  • 데이터 연속적으로 존재





선언 및 생성

List<타입 파라미터> 객체명 = new ArrayList<타입 파라미터>(초기 저장용량);





4. LinkedList


데이터를 효율적으로 추가, 삭제, 변경 가능
데이터가 불연속적으로 존재
데이터간 연결 구조를 가짐

  • node 구성: 데이터 + 연결된 노드의 주소값

  • 연결리스트의 삭제: prev(이전 노드)가 next(다음 노드)를 참조하도록 변경하면 현재 노드를 삭제할 수 있음 → 배열에 비해 처리속도 높음

  • 연결리스트의 삽입: 새로운 노드를 참조하도록 하고, 새로운 노드가 다음 노드를 참조하게 하여 삽입





5. Iterator


컬렉션에 저장된 요소를 읽어옴

  • hasNext(): 다음 객체가 존재하면 true, 아니면 false 반환

  • next(): 하나의 객체 가져옴

  • remove(): 객체 제거





참고 자료


컬렉션 프레임워크의 개념

[Java] 컬렉션 프레임워크

Class ArrayList

0개의 댓글