Generics & Collection

강효림·2023년 9월 19일
0

JAVA

목록 보기
18/19
post-thumbnail

Collection< E >

제네릭 기법으로 구현됨
컬렉션의 요소는 개체만 가능함 (기본타입사용불가)

Set < E >

HashSet< E >

List < E >

Vector < E >

  • 길이 제한 없고 자동으로 길이 조정

  • 기본 타입은 Wrapper 객체로 저장

  • < E >에서 E 대신 특정 타입으로 구체화
    타입 작성 안하면 경고 발생

  • 벡터 중간, 맨 뒤에 객체 삽입 가능
    벡터의 사이즈보다 큰 곳에 삽입 불가능

  • 벡터의 객체 삭제 가능

    Stack < E >

    ArrayList < E >

    벡터와 특성이 매우 비슷하지만

  • 스레드 동기화 기능 없음

  • 그리고 기본타입은 박싱 / 언박싱으로 Wrapper 객체로 저장 (개발자가 코드를 작성해야함)

  • capacity() 메소드가 없음

    Iterator < E >

    Vector< E >, ArrayList < E >, LinkedList < E >가 상속 받는 인터페이스

  • iterator()
    Iterator 객체 반환

    HashMap < K, V >

    Key (키) 와 Value (값)의 쌍으로 구성되는 요소를 다루는 컬렉션
    Key는 키로 사용할 요소의 타입
    Value는 값으로 사용할 요소의 타입

  • 삽입
    put()

  • 검색
    get()

    HashMap<String, String> h = new HashMap<String, String>();
    h.put("apple","사과");  //해시맵에 삽입
    String kor = h.get("apple");  //"apple" 키로 값 검색
    System.out.println(kor);

    Queue < E >

    LinkedList < E >

  • List 인터페이스를 구현한 컬렉션 클래스

  • Vector, ArrayList와 매우 유사하게 작동

  • 요소 객체는 맨 앞,뒤에 추가, 삭제 가능. 중간은 인덱스 사용하기

  • stack이나 queue로 사용 가능

    Generics

    여러 종류의 타입을 변신할 수 있도록 클래스나 메소드를 일반화시키는 기법

  • 컴파일 시에 타입이 결정되어 안전함

  • 런타임 타입 충돌 문제 방지

  • ClassCastException 방지

    구체화

    제네릭 타입의 클래스에 구체적인 타입을 대입해 객체 생성

0개의 댓글