[JAVA] Collections Framework 인터페이스

    컬렉션 프레임웍 (Collections Framework)

    컬렉션 프레임워크에서는 컬렉션데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고 각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스 - List, Set, Map 를 정의하였다.

     

    이중 List와 Set 인터페이스는 Collection 인터페이스를 상속받는다.

     

    컬렉션 프레임워크의 모든 컬렉션 클래스들은 List, Set, Map 중의 하나를 구현한다.

    Collection 인터페이스

    메서드:

    boolean add(Object o)

    boolean addAll(Collection c)

    void clear()

    boolean contains(Object o)

    boolean containsAll(Collection c)

    boolean equals(Object o)

    int hashCode()

    boolean isEmpty()

    Iterator iterator()

    boolean remove(Object o)

    boolean removeAll(Collection c)

    boolean retainAll(Collection c) : 지정된 객체만 남기고 다른 객체들은 Collection에서 삭제한다. 이 작업으로 인해 Collection에 변화가 있으면 true 리턴

    int size()

    Object[] toArray()

    Object[] toArray(Object[] a)

     

    All Known Implementing Classes: Collection 인터페이스를 구현한 클래스 

    공식문서

     

    List 인터페이스

    void add(int index, E element)

    boolean add(int index, Collection c)

    Object get(int index)

    int indexOf(Object o)

    int lastIndexOf(Object o)

    ListIterator listIterator()

    ListIterator listIterator(int index)

    Object remove(int index)

    Object set(int index, Object element)

    void sort(Comparator c)

    List subList(int formIndex, int toIndex)

    Set 인터페이스

    Map 인터페이스

    void clear()

    boolean containsKey(Object key)

    boolean containsValue(Object key)

    Set entrySet()

    boolean get(Object key)

    int hashCode()

    boolean isEmpty()

    Set keySet()

    Object put(Object key, Object value)

    void putAll(Map t)

    Object remove(Object key)

    int size()

    Collection values()

    value는 중복을 허용하기 때문에 Collection 타입으로 반환하고, key는 중복을 허용하지 않기 때문에 Set타입으로 반환한다.


    참고: 자바의 정석 - 남궁성

     

    🤞자바의 정석 스터디 14일차 p578-603🤞

     

     

     

     

     

    728x90

    'JAVA' 카테고리의 다른 글

    [JAVA] HashSet, TreeSet, 해싱  (0) 2022.12.22
    [JAVA] ArrayList vs LinkedList  (0) 2022.12.14
    [JAVA] 인터페이스  (0) 2022.12.08
    [JAVA] 제어자(modifier)와 다형성(polymorphism)  (0) 2022.12.07
    [JAVA] 오버라이딩 (overriding)  (0) 2022.12.03

    댓글