본문 바로가기

카테고리 없음

List, Set, Map

자료구조에 List, Set, Map이 존재한다.

 

1. List

 - 순서가 있고 중복을 허용하는 자료구조

 - 인덱스로 원소 접근

 - 배열과 다르게 크기가 가변적

List<자료형> 리스트 명 = new ArrayList(or LinkedList)<자료형(생략가능)>();
import java.util.ArrayList;  // ArratList 선언 시

import java.util.LinkedList; // LinkedList 선언 시
import java.util.List;

  1) 리스트의 기능

    - 삽입: List.add(값)

    - 중간 삽입: List.add(index, value); : index: 중간에 넣을 인덱스(배열 인덱스), value: 중간에 넣을 값

    - 치환: List.set(index, value); : 중간 삽입과 비슷하게 index는 치환할 값 자리에 인덱스이고 value는 치환할 자리에 값

    - 삭제: List.remove(index); : 인덱스 위치에 있는 값을 삭제

    - 전체 삭제: List.clear(); 모든 요소를 삭제

    - 출력: List.get(index) : 인덱스 위치에 있는 값을 출력

    - 사이즈: List.size() : 리스트에 크기

 

  2) LinkedList와 ArrayList의 차이

    2-1) LinkedList

        - 양방향 포인터 구조

        - 데이터의 삽입, 삭제가 빠름

        - 검색이 느림

 

    2-2) ArrayList

        - 단방향 포인터 구조로 데이터 순차적 접근에 강점

        - 배열 기반으로 데이터 삽입, 삭제가 느림

        - 데이터 검색이 빠름

 

2. Set

    - 집합이랑 비슷함

    - 순서가 없고 중복을 허용하지 않음

Set<자료형> set 명 = new HashSet(or TreeSet)<>();

 1) Set의 기능

    - 삽입: Set.add(값);

    - 제거: Set.remove(값);

    - 크기: Set.size(); : Set에 크기를 반환

    - Set에 요소가 있는지 없는지 판단: Set.isEmpty(); (없으면 True, 있으면 False를 반환)

    - 지정한 값이 Set 안에 있는지 판단: Set.contains(값); (있으면 True, 없으면 False를 반환)

 

 

3. Map

    - Key와 Value의 쌍으로 이루어져 있어 검색을 목적으로 많이 사용

Map<자료형, 자료형> 맵 명 = new HashMap(or Hashtable)<자료형, 자료형(생략 가능)>();

 1) Map의 기능

    - 삽입: Map.put(키(key), 값(value);

    - 수정(치환): Map.put(기존 키(key), 새로운 값(value)); :

    - 꺼낼 때: Map.get(키(key));

    - 삭제: Map.remove(키(key));

    - size: Map.size(); : Map에 사이즈를 반환

    - 키(key) 존재 여부: Map.containsKey() : 키(key)가 존재하는지 판단 존재하면 True 존재하지 않으면 False

    - 값(value) 존재 여부: Map.containsValue() : 값(value)이 존재하는지 판단 존재하면 True 존재하지 않으면 False

 

  3-1) HashMap

        - Map과 비슷하게 Key Value쌍으로 이루어져있지만 null을 허용함

HashMap hm = new HashMap(); // 타입 설정x Object 입력