[자바] 컬렉션

이정우·2021년 8월 26일
0

자바

목록 보기
8/9

국비 학원에서 월요일부터 조그만한 자바 미니 프로젝트를 시작해서 월화수 글을 쓰지 못했습니다. 프로젝트에서는 5명이서 2명 코딩 3명 ppt를 담당했고 메인 코딩은 저희 조 다른분이 하시고 저는 어시스트 코딩을 했고 추가적으로 발표도 맡았습니다. 그냥 단순한 관리 코딩이라서 따로 저 혼자 하나 만들어볼까 생각하고 있고 그 코드도 추후 올리볼까 합니다.

컬렉션

객체를 배열처럼 하나로 묶어서 삭제 수정 저장 등등 메서드를 사용하는 배열의 업그레이드 형태.

  • 컬렉션의 프레임워크
    • 인터페이스 : 컬렉션을 다양한 형태롤 사용할 수 있도록 만들어주는 기본 틀
    • 구현체 : 컬렉션 인터페이스를 구현한 클래스들로 실제 프로그램에서 사용하는 부분. 재사용성이 특징.
      • set의 구현체 : HashSet, TreeSet, LinkedHashSet
        • List의 구현체 : ArrayList, LinkedList
        • Deque의 구현체 : ArayyDeque
        • Map의 구현체 : HashMap, TreeMap
    • 알고리즘 : 구현체에 정렬, 검색 등 유용한 메소드를 제공. 재사용성이 특징.

컬렉션의 장점

  • 배열때 처럼 추가 삭제 수정을 직접 구현할 필요가 없음. (remove, add등의 메서드 제공)

  • 속도, 질이 좋음.

  • 편리하고 고성능!

  • collection 은 set, list, queue, deque가 있다.

    -set은 중복된 값을 포함할 수 없는 컬렉션
    -list는 값의 중복을 허용하고 배열처럼 인덱스를 이용해 값을 저장하거나 읽을 수 있습니다.
    -Queue와 Dequeue는 사전 처리를 위해 여러 요소들을 대기하도록 하는데 사용합니다.

인터페이스

인터페이스는 크게 컬렉션과 Map으로 나뉘어집니다. 이 둘의 큰 차이점은 컬렉션은 값만 저장하지만 Map은 키와 값을 함께 저장한다는 점입니다. 키를 함께 저장하므로써 검색 기능을 용이하게 만들어줍니다.

ArrayList


장점 - List 인터페이스를 구현한 클래스로 가장 큰 특징으로는 가변 길이라는 점입니다. Null을 포함한 모든 타입을 저장할 수 있으며 데이터의 저장, 수정, 삭제, 읽기 메소드를 제공하며 데이터 처리를 간편하게 할 수 있습니다. 또한 가변길이라는 특징 덕분에 배열과는 다르게 데이터 개수에 제한 없이 사용이 가능합니다.

단점 - 기본적으로 동기화를 지원하지 않기에 여러 쓰레드를 쓸 경우 직접 동기화를 구현해줘야 합니다.

Iterator

컬렉션 프레임워크의 멤버 인터페이스인 Iterator은 컬렉션에 저장된 데이터를 탐색하는데 많이 쓰입니다. 특징은 컬렉션의 특징상 각 요소에 접근해서 값을 하나씩 읽는 작업을 많이 하는데 이러한 동작을 Iterator가 대신 해줍니다.
hasNext(), next() 등의 메서드를 사용하는데 hasNext()는 더 이상 읽을 값이 없으면 false, 있으면 true를 반환해서 따로 길이를 찾지 않아도 편하게 반복문을 돌릴 수 있습니다. next()메소드는 호출를 할 때 마다 1->2->3->... 순서대로 각 요소의 값을 읽어옵니다.

HashMap

Map은 빠른 검색을 위해 키와 값으로 저장합니다. 여기서 키는 중복될 수 없습니다.

참고 자료 : 국비 교육

profile
프로그래밍 공부 중!

0개의 댓글