ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] collection의 개념
    프로그래밍/Java 2019. 7. 10. 23:46
    반응형
    ...더보기

    안녕 자바 Collection이 왔어

    배열은 너무 불편해 

    int a[100]에 200개를 집어넣을 수가 없어!

    정말 짜증나

    하지만 우리에겐 컬렉션이 있어!

     

    Collection<E> 인터페이스 3대장의 모습이다.

    각각

    HashSet<E> 클래스의 인터페이스 - Set<E>

    ArrayList<E>, Vector<E>, LinkedList<E> 클래스의 인터페이스 - List<E>

    LinkedList<E> 클래스의 인터페이스 - Queue<E>

     

    HashMap<K, V> 클래스의 인터페이스 MAP<K, V> 레카

     

    컬렉션은 고정 크기의 배열이 가지는 단점을 극복하고, 요소(element)라고 불리는 객체들의 삽입, 삭제, 검색 기능을 갖춘 가변 크기의 컨테이너(Container)이다.

    <E> - element ex) Integer, String

    <K> - key 

    <V> - value

    <T> - type을 의미한다는데... 타입이 뭐징..

     

    컬렉션이 다룰 수 있는 원소의 타입을 적어 놓기 귀찮았던 개발자는 그걸 있어 보이게 포장하기 위해 <E>를 사용했다.

    그리고 이걸 제네릭 타입(generic type)이라고 부른다.

    제네릭 타입 에는 Integer, String 등이 있다. int, char, double 같이 소문자를 앞에쓰는 하찮은 기본 타입의 데이터는 상종하지 않는다.

     

    하지만 제네릭으로 선언한 컬렉션에 값을 집어 넣을 때는 기본 타입의 값을 넣을 수 있다. 왜냐면 자바를 만든 박혁거자바께서 너그러운 마음으로 자동 박싱(auto boxing)을 통해 Wrapper클래스로 변환해 객체 형태로 저장해 주신다. 절하자

    그리고 get, set 이런거 못 외우는 친구들을 위해 Iterator<E>를 만들어 주셨는데, get, set도 못외우면서 Iterator를 외울수 있을까

    여튼 예를 들자면

    ArrayList<Integer> arr = new ArrayList<Integer>();

    Iterator<Integer> it = v.iterator();

     

    it.hasNext();

    it.next();

    it.remove(); 뭐 이딴식으로 쓰게 만들어 주셨다.

     

    일단 여기까지

    반응형

    댓글

Designed by Tistory. Flag Counter