JAVA의 Collections framework (컬렉션 프레임워크)

Yumin Jung·2024년 1월 8일
0

ABOUT 프로그래밍

목록 보기
8/11

컬렉션즈 프레임워크라는 것은 다른 말로는 컨테이너이다. 값을 담는 그릇이라는 의미인데, 그 값의 성격에 따라 컨테이너의 성격이 달라진다. 자바에서는 다양한 상황에서 사용할 수 있는 다양한 컨테이너를 제공하는데 이것을 컬렉션즈 프레임워크라고 한다.

ArrayList의 예시

import java.util.ArrayList;

public class Collection {
    //배열이 가지고 있는 한계를 쉽게 벗어날 수 있게 하는 도구

    public static void main(String[] args) {
    //1. 배열
    
        String[] arrayObj= new String[2];
        arrayObj[0] = "one";
        arrayObj[1] = "two";
        //arrayObj[2] = "three"; // 오류가 발생한다.

        for (String string : arrayObj) {
            System.out.println(string);
        }
	//2. ArrayList : 배열의 인덱스 개수를 설정할 필요가 없음.
    
        ArrayList<String> al = new ArrayList<String>();// ArrayList에 있는 메소드들은 어떠한 형태의 데이터 타입도 수용할 수 있는 형태의 메소드이다.
        al.add("one"); // object 타입임.
        al.add("two");
        al.add("three");

        for (int i = 0; i < al.size(); i++) {
            String value = al.get(i);
            System.out.println(value);
        }
    }
}

Set과 List의 차이

List는 중복을 허용한다. 순서대로 나오는 것이 보장된다.

Set는 중복을 허용하지 않는다. 따라서 집합의 관계이다. 순서대로 나오는 것이 보장되지 않는다. 집합 A에서 안에 들어있는 것이 순서가 중요하지 않다.

HashSet의 예시

각각의 값들은 고유하다. 따라서 중복되지 않는다.

// Hashset의 예
package collection;

import java.util.HashSet;

public class SetDemo {
    public static void main(String[] args) {
        HashSet<Integer> A = new HashSet<Integer>();
        A.add(1);
        A.add(2);
        A.add(3);
        HashSet<Integer> B = new HashSet<Integer>();
        A.add(3);
        A.add(4);
        A.add(5);
        HashSet<Integer> C = new HashSet<Integer>();
        A.add(1);
        A.add(2);

        System.out.println(A.containsAll(B)); //false
        System.out.println(A.containsAll(C)); //true

        //A.addAll(B); 합집합
        //A.retainAll(B); 교집합
        //A.removeAll(B); 차집합
    }
}
profile
문과를 정말로 존중해

0개의 댓글