고급자바_Collection Framework_List

wstudee·2020년 9월 14일
0

JAVA_고급

목록 보기
1/19

Java Collection Framework

  • 자바의 컬렉션(모음)객체들을 다루기 위해 제공되는
  • 재사용 가능한 클래스 또는 인터페이스를 통칭
  • 라이브러리처럼 사용됨

List 인터페이스

  • 순서(인덱스)가 존재 = 인덱스를 이용해 원하는 위치에 접근 가능
  • 중복 저장 가능
    LinkdeList

List 인터페이스를 구현하고 있는 클래스

  • Stack, Vector, LinkedList, ArrayList

LinkedList → Stack, Queue

  • Stack : 선입후출(FILO) 자료구조
  • Queue : 선입선출(FIFO) 자료구조
  • Stack과 Queue는 LinkedList를 이용하여 사용할 수 있다.
  • stack의 명령
    1) 자료입력 : push(저장할 값)
    2) 자료출력 : pop() => 맨 위의 자료 꺼내온 후 stack에서 삭제함
  • Queue의 명령
    1) 자료입력 : offer(저장할 값)
    2) 자료출력 : poll() => 자료 꺼내온 후 Queue에서 삭제함

List 정렬

  • Collection.sort( ) 메서드를 이용
  • 기본적으로 오름차순
  • 정렬방식을 변경하려면 정렬방식을 결정하는 객체를 만들어서
  • Collection.sort( ) 메서드에 매개변수로 넘겨주면 됨

    Collection.sort(list) : 오름차순
    Collection.sort(list, new Desc()); : 내림차순(외부정렬자)

  • 정렬과 관련된 인터페이스 : Comparable | Comparator

Comparable

  • T03_ListSortTest 참고
  • 객체 자체에 정렬 기능을 넣기 위해서 구현
  • Comparable에서는 compareTo( ) 메서드 구현

    compareTo(T o) : 현재 객체(this)와 대상객체(o)의 순서를 비교
    결과값 : 양수(오름차순) | 음수 (내림차순) | 0 (동일)

Comparator

  • T02_ListSortTest 참고

  • 정렬 기준을 별도로 구현하고 싶을 때 구현, 외부정렬자

  • Comparator에서는 compare( ) 메서드 구현

    compare(T o1, T o2) : 첫 번째 객체(o1)와 두번째 객체(o2)의 순서 비교
    결과값 : 양수(오름차순) | 음수 (내림차순) | 0 (동일)

  • Wrapper 클래스에서 정의하는 compareTo( ) 와 compare( )

ArrayList vs. LinkedList

  • ArrayList
    - 인덱스로 데이터 접근이 쉽다
    - 다 지우고 싶으면 뒤부터 지워야된다.
    • 데이터가 삭제되면 앞으로 땡겨져서 빈공간을 채움
  • LinkedList
    - 처음이나 중간에 삽입, 삭제 빈번할 때 좋음
    • 데이터 접근에 시간이 더 걸린다.

0개의 댓글