Java Collection Framework

신준서·2023년 3월 28일
0
post-thumbnail
post-custom-banner

Java Collection Framework란

Java Collection Framework는 다수의 요소를 하나의 그룹으로 묶어
효율적으로 저장, 관리할 수 있는 기능을 제공하는 일종의 컨테이너라고 볼 수 있습니다.
또한 배열은 크기가 고정되어 있는 것에 반해, 컬렉션 프레임워크는 가변적인 크기를 갖습니다.


장점

코드 재사용성

Java Collection Framework는 재사용 가능한 데이터 구조를 제공하여 코드의 재사용성을 높입니다.
이를 통해 프로그래머는 자료 구조를 반복해서 구현할 필요가 없습니다.

데이터 구조 유지 관리

Java Collection Framework를 사용하면 데이터 구조를 쉽게 유지 관리할 수 있습니다.
이를 통해 프로그래머는 자료 구조에 대한 이해도를 높일 수 있습니다.

안정성

Java Collection Framework는 안정성이 높은 데이터 구조를 제공합니다.
이를 통해 프로그래머는 데이터 구조를 사용할 때 예기치 않은 오류를 방지할 수 있습니다.

성능 향상

Java Collection Framework는 높은 성능을 제공합니다.
이를 통해 프로그래머는 대량의 데이터를 빠르게 처리할 수 있습니다.

다양한 자료 구조 제공

Java Collection Framework는 다양한 자료 구조를 제공합니다.
이를 통해 프로그래머는 데이터를 적절한 방식으로 구조화하고 관리할 수 있습니다.


상속 구조

Java Collection Framework의 상속 구조

Java Collection Framework의 인터페이스와 클래스는 다양한 상속 구조를 갖고 있습니다.

Collection

가장 상위에는 java.util.Collection 인터페이스가 위치하며, 이 인터페이스는 다른 인터페이스들의 상위 인터페이스 역할을 합니다.

Set, List

그 아래에는 java.util.Setjava.util.List 인터페이스가 위치하며, 각각 집합과 순서가 있는 자료구조를 표현합니다.
Set 인터페이스는 중복을 허용하지 않는 자료구조를 표현하며, HashSet, LinkedHashSet 등의 클래스가 해당 인터페이스를 구현합니다.
List 인터페이스는 순서가 있는 자료구조를 표현하며, ArrayList, LinkedList 등의 클래스가 해당 인터페이스를 구현합니다.

Queue, Deque

그 아래에는 java.util.Queuejava.util.Deque 인터페이스가 위치하며, 각각 선입선출(FIFO)과 양방향 큐를 표현합니다.
Queue 인터페이스는 add(), remove() 메서드를 제공하며, Deque 인터페이스는 Queue 인터페이스의 메서드에 더해 스택의 push(), pop() 메서드도 제공합니다.
LinkedList, ArrayDeque 등의 클래스가 해당 인터페이스를 구현합니다.

Map

그리고 마지막으로 java.util.Map 인터페이스가 위치합니다.
이 인터페이스는 key-value 쌍으로 구성된 자료구조를 표현하며, key는 중복될 수 없습니다.
HashMap, TreeMap 등의 클래스가 해당 인터페이스를 구현합니다.


예제

ArrayList

import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        // <>안에 저장될 요소의 자료형을 입력한다
        
        list.add("Java");
        list.add("ShinJoonseo");
        list.add("Design");
        
        for (String s : list) {
            System.out.println(s);
        }
    }
}
// 출력결과 :
// Java
// ShinJoonseo
// Design

ArrayList는 가변 크기 배열이라고 볼 수 있습니다.
따라서 입력될 요소의 개수를 예상하지 못할 때 사용하면 효율적일 것입니다.
위 코드는 ArrayList를 사용하여 문자열을 순서대로 출력하는 간단한 예제코드입니다.

HashMap

import java.util.HashMap;

public class HashMapExample {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<String, Integer>();
        // 문자열을 key의 자료형으로, 정수형을 value의 자료형으로 했다
        
        map.put("Shin", 18);
        map.put("Kim", 13);
        map.put("Kwon", 35);
        
        for (String key : map.keySet()) {
            System.out.println(key + " is " + map.get(key) + " years old.");
        }
    }
}
// 출력결과 :
// Kwon is 35 years old.
// Shin is 18 years old.
// Kim is 13 years old.

HashMap은 키-값 쌍으로 데이터를 저장하는 자료구조입니다.
위 코드는 HashMap을 사용하여 이름과 나이를 저장하고 출력하는 예제입니다.

TreeSet

import java.util.TreeSet;

public class TreeSetExample {
    public static void main(String[] args) {
        TreeSet<Integer> set = new TreeSet<Integer>();
        // 정수형을 TreeSet의 데이터의 자료형으로 했다
        
        set.add(3);
        set.add(1);
        set.add(2);
        
        for (int i : set) {
            System.out.println(i);
        }
    }
}
// 출력결과 : 
// 1
// 2
// 3

TreeSet은 이진 검색 트리로 구현된 정렬된 집합입니다.
위 코드는 TreeSet을 사용하여 정수를 저장하고 출력하는 예제코드입니다.

profile
경험을 통해 성장하는 디자이너
post-custom-banner

0개의 댓글