[Java] Java Collection Framework

김준경·2023년 3월 27일
0

Java

목록 보기
1/1

Java Collection Framework ?

  컬렉션(Collection)은 다수의 요소를 하나의 그룹으로 묶어 효율적으로 저장하고, 관리할 수 있는 기능을 제공하는 일종의 컨테이너이다. 배열은 크기가 고정되어 있지만 컬렉션 프레임워크는 가변적인 크기를 갖는다. 또한 데이터 삽입, 탐색, 정렬 등 편리한 API를 제공하기도 한다.

  배열은 크기가 고정되어 있기 때문에 크기를 변경하려면 새로운 배열을 만들어서 기존 배열의 내용을 복사해 넣어야 하지만, 컬렉션 프레임워크는 이러한 작업이 필요가 없기때문에 메모리 공간 사용에서 효율적이다.

구성요소

  인터페이스 (Interface) : 각 컬렉션을 나타내는 추상 데이터에 대한 인터페이스(List, Set, Map등등). 클래스는 이 인터페이스를 구현하는 방식으로 작성되었기 때문에 상세 동작은 달라도 일관된 형식으로 사용할 수 있다.

  클래스 (Classe) : 컬렉션 별 인터페이스의 구현. 위에서 언급했듯, 같은 List 컬렉션이더라도 목적에 따라 ArrayList, LinkedList 등으로 상세 구현이 달라질 수 있다.

  알고리즘 (Algorithm) : 컬렉션이 제공하는 연산, 검색, 정렬, 셔플 등에 대한 메소드.

종류

  리스트(List), 큐(Queue), 집합(Set), 맵(Map)으로 이루어져 있다.

리스트(List)
   인덱스 순서로 요소를 저장하며 중복된 데이터를 저장할 수 있다.
-ArrayList, LinkedList, Vector, Stack...

큐(Queue)
   데이터가 저장된 순서대로 출력되는 선입선출 구조이다.
-PriorityQueue, ArrayDeque...

집합(Set)
   순서가 없으며 데이터를 중복하여 저장할 수 없다. 집합 연산을 지원한다.
-HastSet, LinkedHashSet, TreeSet...

맵(Map)
   Key-value 쌍으로 데이터를 저장한다. 순서가 중복되지 않으며, Key가 중복될 수 없다.
-HashMap, HashTable, TreeMap...

도식화

ArrayList

package array;

public class arrayList {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};

        System.out.println(arr[0]+ arr[1]+ arr[2]); // 1 2 3
        System.out.println(arr); //arr[0], 즉 1의 주소값 출력
    }
}

HashMap

package hash;

import java.util.HashMap;

public class HashMap {
    public static void main(String[] args) {
        HashMap<String, String> hash = new HashMap<String, String>()

        hash.put("Kim", "student"); //Kim == Key, student == value;
        hash.put("Park", "student"); //Park == Key, student == value;
        hash.put("Hwang", "teacher"); //Hwang == Key, teacher == value;

        System.out.println(hash); //{Kim=student, Park=student, Hwang=teacher}
    }
}
profile
프론트엔드개발자가될래요

0개의 댓글