[66해빗 페이백 챌린지] 17일차

tree·2023년 5월 18일
0

22. 자바랭 다음으로 많이 쓰는 애들은 컬렉션 - Part1(List)

22-1 자바 컬렉션

  • 목록성 데이터를 처리하는 자료 구조를 통칭

  • Collection 인터페이스
    • Iterable<E> 인터페이스를 확장
      • Iterator 인터페이스를 사용해 데이터를 순차적으로 가져올 수 있다.

22-2 List 인터페이스와 그 동생들

  • 순서가 있다.
  • List를 구현하는 클래스들
    • ArrayList
      • 확장 가능한 배열
      • Thread Unsafe
    • Vector
      • ArrayList와 사용법이 거의 유사
      • Thread Safe
    • Stack
      • LIFO
      • Vector를 확장
    • LinkedList
      • List, Queue를 구현한다.

22-3 ArrayList에 대해서 파헤쳐보자

  • 상속 관계

    • java.lang.Object
      • java.util.AbstractCollection<E>
        • java.util.AbstractList<E>
          • java.util.ArrayList<E>
  • ArrayList가 구현한 인터페이스

    • Serializable, Cloneable, Iterable<E>, Collection<E>, List<E>, RandomAccess

22-4 ArrayList의 생성자는 3개다

  • ArrayList()

  • ArrayList(Collection<? extends E> e)

  • ArrayList(int initialCapacity)

  • 초기 사이즈는 10이다.

    • 리스트 사이즈를 예측할 수 있으면 생성할 때 사이즈를 지정해주어 성능 하락을 방지하자.

22-5 ArrayList에 데이터를 담아보자

  • add(E e)
  • add(int index, E e)
  • add(Collection<? extends E> c)
  • add(int index, Collection<? extends E> c)

22-6 ArrayList에서 데이터를 꺼내자

  • size()

  • get(int index)

  • indexOf(Object o)

    • 앞에서부터 찾음
  • lastIndexOf(Object o)

    • 뒤에서부터 찾음
  • ArrayList 데이터를 배열로 옮기기

    • toArray()
      • Object 배열을 리턴
    • toArray(T[] a)
      • a 배열에 담아 리턴
      • 배열 사이즈가 모자라면 새로운 배열 할당
      • 배열 사이즈가 크면 나머지는 null로 채움

22-7 ArrayList에 있는 데이터를 삭제하자

  • clear()
  • remove(int index)
  • remove(Object o)
    • 매개변수 동일한 첫번째 데이터만 삭제
  • removeAll(Collection<?> c)
    • 컬렉션이 있는 데이터와 동일한 모든 데이터를 삭제

0개의 댓글