ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 20240827 11일차
    카테고리 없음 2024. 8. 27. 17:24

    [Generic]
    - 데이터 타입을 일반화(generalize)하는 기능을 제공
    - 클래스, 인터페이스, 메서드를 데이터 타입에 상관없이 재사용할 수 있음
    - 실제 사용 시에는 구체적인 타입이 결정되어야 하지만, 설계할 때는 구체적 타입을 언급하지 않음
      * public class ArrayList<E> extends AbstractList<E>

    - 타입 안정성 제공: 컴파일 시 타입을 점검하기 때문에 런타임 오류 사전 방지
    - 타입체크 및 형변환 생략: 불필요한 타입 변환이 없으므로 코드가 간결해지고 프로그램 성능이 향상됨

    - Generic 타입 매개변수를 Object라고 설정하면, 매번 타입 체크를 해줘야되기 때문에 불편함

    - Generic 타입에 대한 범위 제한
      * 모든 타입으로 대체할 수 없고, 특정 타입과 자식 또는 구현 관계에 있는 타입만 대체할 수 있는 타입 매개변수
      * 사용법: <T extends 상위타입 클래스/인터페이스> [return type] method이름 (params ...) { ... }



    [Collection Framework]
    - Collection Framework: 객체를 한 곳에 모아 효율적으로 관리하고 편리하게 사용할 수 있도록 제공하는 환경
    - interface, class로 구성
      * interface: collection에서 수행할 수 있는 각종 연산을 generic 타입으로 정의하여 유사 클래스에 일관성 있게 접근하게 함
      * class: collection framework interface를 구현한 클래스
      * java.util 패키지에 포함

    [List]
    - new ArrayList<>()
      * add, remove, set O
    - Arrays.asList( )
      * add, remove: O / set: X
    - List.of( ) : 정적 팩토리 메서드
      * 불변성이므로 add, remove, set X

    [Stack]
    - search() 메서드
      * 스택의 맨 위를 기준으로 1부터 시작하는 위치를 반환
      * 반환되는 값은 인덱스가 아닌 위치
      * 인덱스는 0부터 시작하지만, search()의 위치는 1부터 시작함

    [LinkedList]
    - 이중 연결 리스트로 구현됨

Designed by Tistory.