ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Collections Framework(컬렉션즈 프레임워크)
    Computer Science/Java 2019.01.20 20:13

    ArrayList 

    배열과 사용방법이 조금 다름. 

    크기를 미리 지정하지 않기 때문에 많은 수의 값 저장할 수 있음.

    메소드 size 사용. 

    특정한 값 가져올 때 .get(인덱스 번호)

    ArrayList 내에서 add를 통해서 입력된 값은 Object의 데이터 타입을 가지고 있음.

    get을 이용해서 이를 꺼내도 Object의 데이터 타입을 가지게 됨. 이 때 제네릭을 사용하는게 좋음.

    제네릭을 사용하면 ArrayList 내에서 사용할 데이터 타입을 인스턴스를 생성할 때 지정할 수 있기 때문에 

    데이터를 꺼낼 때 형변환을 하지 않아도 됨.


    Collections Framework(컬렉션즈 프레임워크)

    다른 말로는 컨테이너. -> 값을 담는 그릇이고 값의 성격에 따라서 컨테이너의 성격이 달라짐.

    즉 자바에선 다양한 상황에서 사용할 수 있는 다양한 컨테이너를 제공함. 

    이것을 컬렉션즈 프레임워크라고 부름.


    메소드 iterator는 인터페이스 Collection에 정의되어 있음.

    메소드 iterator의 호출 결과는 인터페이스 iterator를 구현한 객체를 리턴.

    인터페이스 iterator는 아래 3개의 메소드를 구현하도록 강제함.

    hasNext : 반복할 데이터가 더 있으면 true, 더 이상 반복할 데이터가 없다면 false 리턴

    next : hasNext가 true라는 것은 next가 리턴할 데이터가 존재한다는 의미.

    for 문을 이용하는 것과 동일하게 데이터를 순차적으로 처리할 수 있음.


    Set과 List의 차이는 Set은 중복을 허용하지 않고 순서도 없음. 

    But, List는 중복을 허용하고 저장되는 순서가 유지됨.

    부분집합(subSet) -> containsAll

    합집함(union) -> addAll

    교집합(intersect) ->retainAll

    차집합(difference) -> removeAll


    Map

    Map 컬렉션은 key와 value의 쌍으로 값을 저장을하는 컬렉션이다.

    put 메소드는 Map에서만 사용 가능. put API는 두개의 인자를 받는데 key, value를 받는다.(데이터를 추가할 때 사용하는 API)

    key 값을 중복이 불가능, value는 중복 가능. value에 null 값 사용 가능.

    메소드 entrySet은 Map의 데이터를 담고 있는 Set을 반환한다. 반환한 Set의 값이 사용할 데이터 타입은 Map.Entry이다.

    Map.Entry는 인터페이스 -> getKey와 getValue API를 가지고 있음. 이것을 통해 Map의 key, value를 조회할 수 있다.

    결론 Map 컬렉션수학의 함수를 프로그래밍화 한 것이다.


    데이터 타입의 교체

    컬렉션을 사용할 때, 데이터 타입은 가급적 해당 컬렉션을 대표하는 인터페이스를 사용하는 것이 좋다.


    댓글 0