카테고리 없음

자바의 컬렉션타입

OHDONGHYEON 2023. 3. 29. 09:59

컬렉션 프레임워크(Collection Freamwork)는 무엇인가?

다수의 데이터를 쉽게 처리할 수 있도록 설게되어 있는 표준 클래스의 집합을 의미한다.
데이터를 저장하는 자료 구조이고, 데이터 처리를 위한 기본적인 알고리즘을 미리 클래스로 구현해 놓은 것을 말한다.

컬렉션 프레임워크는 인터페이스를 통하여 구현이 되기 때문에
DB에 여러 데이터들을 불러와 어느 데이터든지 컬렉션타입으로 만들기 쉽도록 표준화 되어있다.

 

특징

컬렉션 타입은 배열과 다르게 동적 메모리 할당을 한다.
(그래서 데이터가 늘어나도, 줄어들어도 유연하게 작동한다)

(즉 데이터를 가공하기가 진짜 편리하다)

 

종류

대표적으로 LIST, QUE, SET, MAP형이 있다.

 

 

ArrayList를 사용하는 아주아주아주 기본적인 예제이다.

ArrayList는 List형에 속해있다.

package evaluating1.ArrayList;

import evaluating1.DummyObject;

import java.util.ArrayList;

public class ArrayListTest {
    public static void main(String[] args) {
        ArrayList<DummyObject> list = new ArrayList<>();
        DummyObject dummy1 = new DummyObject(1, "dummy1");
        list.add(dummy1);
        //중복이 허용이 된다.
        list.add(dummy1);
        list.add(dummy1);
    }
}

HASHMAP을 사용하는 아주아주아주 기본적인 예제이다.
HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션중 하나이다.
Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있습니다.
만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대치됩니다.
HashMap은 이름 그대로 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보인다.

//기본 선언하기
HashMap<Integer,String> map = new HashMap<Integer,String>(){{
    put(1,"dummy1");
    put(2,"dummy2");
    put(3,"dummy3");
}};

EntrySet과 keySet을 사용하는 법

for (Entry<Integer, String> entry : map.entrySet()) {
    System.out.println("키값은 " + entry.getKey() + "이고 값은" + entry.getValue() + " 입니다");
}

for(Integer i : map.keySet()) {
    System.out.println("키값은 " + i + "이고 값은" + map.get(i) + " 입니다");
}

Iterator를 사용하는 법

Iterator<Entry<Integer, String>> entries = map.entrySet().iterator();
while(entries.hasNext()){
    Map.Entry<Integer, String> entry = entries.next();
    System.out.println("키값은 " + entry.getKey() + "이고 값은" + entry.getValue() + " 입니다");
}

Iterator<Integer> keys = map.keySet().iterator();
while(keys.hasNext()){
    int key = keys.next();
    System.out.println("키값은 " + key + "이고 값은" + map.get(key) + " 입니다");
}