본문 바로가기
IT/JAVA

JAVA - 컬렉션 프레임 워크

by 삐약 개발자 2024. 12. 2.
반응형

Collection || Map - 다름

Collection 은 순서나 집합적인 저장공간임

Map 은 키와 값으로 데이터 핸들링

 

Collection - List - LinkedList , Stack, Vector, ArrayList

                 - Set - HashSet , SortedSet

 

ArrayList - 배열을 기반으로 리스트

인덱스가 있는 요소는 해당하는 위치를 빠르게 찾을수 있는 장점이 있음(조회)

단 추가하거나 삭제할때는 많은 메모리를 잡아먹음

 

추가와 삭제에 조금더 빠른 LinkedList 얘는 조회는 빠르게 안되는 이유가 뭔지? index 가 없나?

보통 LinkedList 는 기차? 구조로 머리부터 ------ 꼬리 구조로 되어 있음 즉 index 가 없음? O(N)

 

주요 인터페이스로는 List , Map, Set 제공

List 는 데이터의 순서가 유지 되며, 중복 저장이 가능한 컬렉션 구현

 

Set 은 순서가 유지되지 않으며 중복 저장이 불가능 , 집합적인 저장 공간 

(알고리즘 문제 , 중복되는 값을 지우고 싶을때, 추상화가 되어 있음) 

 

Map 은 키와 값의 쌍으로 데이터 저장, 데이터의 순서 유지 안됨, 키는 중복저장 불가능 값은 가능

map을 순회하기 위해서는 set 으로 바꿔야 가능

for(map.Entry<String, Interger> entry : map.entrySet()){

 

}

LinkHashMap -> 순서대로 나옴

 

List

 

ArrayList

import java.util.ArrayList;

public class ListTest {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        //추가
        list.add("java");
        list.add("egg");
        list.add("tree");

        //길이 - 배열의 length
        int size = list.size();
        System.out.println("size : " + size);

        //특정 인게스의 객체 얻기
        String skill = list.get(0);
        System.out.println("0번째 인덱스의 값 : " + skill);

        //저장된 총 객체 수 만큼 조회
        for(int i = 0; i < list.size(); i++){
            String str = list.get(i);
            System.out.println(i + " : " + str);
        }

        //for-each 문으로 순회
        for(String str : list){
            System.out.println(str);
        }

        //제거
        list.remove(0);
        System.out.println("0번째 인덱스를 지운 list : " + list);



    }
}

 

LinkedList

//        ArrayList<String> list = new ArrayList<>();
        LinkedList<String> list = new LinkedList<>();

위에 코드를 아래처럼 바꿔도 아래 해당하는문을 안바꿔도 정산적으로 실행이 됨

 

 

 

반응형

'IT > JAVA' 카테고리의 다른 글

JAVA - 람다(Lambda)  (0) 2024.12.02
JAVA - 애너테이션(Annotation)  (1) 2024.12.02
JAVA - Collection 3) 예외처리  (1) 2024.11.29
JAVA - Collection 2) 제네릭  (0) 2024.11.29
JAVA - Collection 1) 열거형  (0) 2024.11.29