본문 바로가기
Java | spring/Java Basic

배열과 컬렉션프레임워크(List, set, map)의 차이

by 워니 wony 2019. 5. 7.

 

배열

  • 자료형이 같은 기억장소의 모임

 

ㅇ 배열의 단점

  1. 자료형이 같아야 한다.
  2. 크기가 고정된다.
    int []a = new int[3];
    int
    정수만 담을 있는 배열 3개가 생긴다.

   int a[] = {10,20,30,40,50};

  •  값을 추가하거나, 중간의 값을 삭제하고자 하면 새로 배열을 만들어서 반복문으로  넣어줘야 하는
  • 데이터 추가, 삭제가 번거롭다.

 

 

컬렉션 프레임워크는  사용하는가?

  • 전통적으로 많은 양의 데이터를 처리하기 위해서는 배열을 이용. 그러나 배열은 자료형이 같아야 하고  크기가 고정되어 있어 자료의 추가, 삭제하기에는 불편한 점이 많다.
  • 이를 보완하기 위해 자바는 "동적배열" 개념인 컬렉션 프레임워크를 제공한다.
  • 컬렌션프레임워크는 어떤 자료형이라도 담을  있고 , 자료의 추가, 삭제가 자유로워 데이터 크기가 자료를 담는 만큼 혹은 삭제하는 만큼 크기가 변화한다.
  • 종류는 Set, List, Map 대표적
  • Set 자료의 중복을 허용하지 않고, List 자료의 중복을 허용한다.
  • , Map key value 한쌍으로 이루어진 자료구조로 python 딕셔너리와 유사하다.

 

컬렉션 프레임워크(collection framework)

  •  배열의 단점을 보완하기 위하여 자바가 java.util 패키지에서 제공하는 자료구조
  1. 어떤 자료형 이라도 담을 있다.
  2. 크기가 자유롭게 늘어난다.

 

컬렉션 프레임워크의 종류

  1. Set     : 중복 허용 X
    - HashSet :
    무작위 값을 담는 set
    - LinkedHashSet :
    넣은 순서대로 담는 set
    - TreeSet :
    자동 정렬하여 담는 set
  2. List     : 중복 허용 O
    - ArrayList
    가장 많이 사용
    - LinkedList ArrayList 보이는 것은 동일하지만, 중간에 값을 넣는 경우 유용하다.
    - Vector, Stack List 종류
  3. Map  : key value 한쌍으로 이루어진 자료구조

 

set list 마치 배열처럼 index 접근하지만

Map 데이터에 접근하기 위해서는 index 아니라 특정 key 접근하는 방식

 

Set(중복허용X)

HashSet

무작위로 값을 담는 set / 효율 좋다

 

LinkedHashSet

넣은 순서대로 값을 담는 set

 

TreeSet

자동 정렬해서 값을 담는 set / 가장 바쁨

List(중복허용O)

ArrayList

배열 같은 List, 순서대로 메모리 잡히는 List

 

LinkedList

리스트배열과 비슷하지만, 주소로 순서 정하는 List

 

vector, Stack

이것도 리스트

Map(key value)

HashMap

무작위로 키와 값이 담기는 Map

 

LinkedMap

넣는 순서 대로 키와 값이 담기는 Map

 

TreeMap

키값으로 정렬되어 담기는 Map

 

 

cellection 인터페이스 메소드

메서드

설명

boolean add(E e)

컬렉션에 객체 추가

void clear( )

컬렉션의 모든 객체를 제거

Iterator<E> iterator

순환할 반복자(Iterator) 반환

boolean remove(Object o)

컬렉션에 매개변수에 해당 인스턴스가 존재하면 제거

int size( )

컬렉션에 있는 요소의 개수를 반환

 

반응형

댓글