[Java] 자료구조_array,collection

Ronie🌊·2021년 2월 14일
0

Java😻

목록 보기
1/1
post-thumbnail
  1. Array 배열
  2. Collection 프레임워크
    2-1. Set
    2-2. List
    2-3. Map

Array 배열

동일한 자료형(Data Type)의 데이터를 연속된 공간에 저장하기 위한 자료구조

int a[] = new int[10];
//자료형[] 변수 = {데이터1, 데이터2, 데이터3, ... };
  • 단점
    • 자료형이 같아야 한다.
    • 크기가 고정된다.
    • 값을 추가하거나, 중간의 값을 삭제하고자 하면 새로 배열을 만들어서 반복문으로 넣어줘야 하는 등
      데이터 추가, 삭제가 번거롭다.

Collection 프레임워크

배열의 단점을 보완하기 위하여 자바가 java.util 패키지에서 제공하는 자료구조
정적 메모리 할당이 아닌 동적 메모리 할당을 하게 된다.

Set

순서가 중요하지 않은 목록, 중복 허용 X

  • HashSet : 무작위로 값을 담는 set / 효율 좋다
  • LinkedHashSet : 넣은 순서대로 담는 set
  • TreeSet : 자동 정렬하여 담는 set

List

순서가 있는 목록, 중복 허용 O

  • ArrayList : 배열 같은 List, 순서대로 메모리 잡히는 List, Thread safe X
  • LinkedList : 리스트배열과 비슷하지만, 주소로 순서 정하는 List, Thread safe O
  • Vector
  • Stack

(Thread safe하지 않다는 것은 객체에 여러 명이 달려들어 값을 변경하려고 하면 문제가 발생할 수 있다는 것)

Map

KEY-VALUE의 형태로 저장되는 Map형

  • Map특징
    • 모든 데이터는 키와 값이 존재한다.
    • 키가 없이 값만 저장할 수는 없다.
    • 값이 없이 키만 저장할 수도 없다.
    • 키는 해당 Map에서 고유해야만 한다.
    • 값은 Map에서 중복되어도 전혀 상관 없다.
    • 데이터 추가 순서는 중요하지 않다(데이터를 저장한 순서대로 결과가 출력되지 않는다).
  • HashMap
    무작위로 키와 값이 담기는 Map,
    대부분 HashMap 객체를 생성할 때에는 매개 변수가 없는 생성자를 사용한다. 하지만 HashMap에 담을 데이터의 개수가 많은 경우에는 초기 크기를 지정해주는 것을 권장한다.
HashMap<String,String> map=new HashMap<String,String>();
  • TreeMap
    키값으로 정렬되어 담기는 Map,
    TreeMap 클래스는 키와 값을 저장하는 동시에 키를 정렬한다. 정렬되는 순서는 숫자 > 알파벳 대문자 > 알파벳 소문자 > 한글 순이다. 따라서, 정렬을 해야 할 필요가 있다면 HashMap 보다는 TreeMap을 사용하는 것이 더 유리하다.
TreeMap<String, String> treeMap = new TreeMap<String, String>();

참조
https://www.crocus.co.kr/1553
https://a1010100z.tistory.com/69
https://defacto-standard.tistory.com/20
https://developsd.tistory.com/31

0개의 댓글