자료구조는 컴퓨터 프로그램에서 데이터를 처리하기 위해 만든 구조로 List, Stack, Map 등이 있습니다.
Java 프로그래밍에서 제공하는 컬렉션은 배열보다 다수의 참조형 데이터를 더 효과적으로 처리 할 수 있는 기능을 가지고 있습니다.
1. ArrayList
배열처럼 일렬로 데이터를 저장하고 조회하여 인덱스로 값을 하나씩 조회합니다.
참조형 변수로 저장하는 ArrayList는 동적 배열입니다. (크기가 가변적으로 늘어납니다)
<-> Array는 기본형 변수로 저장하는 정적 배열.
ArrayList<Integer> intList = new ArrayList<Integer>(); // 선언 + 생성
intList.add(1); // 추가
intList.remove(1); // 삭제
2. LinkedList
메모리에 남는 공간을 요청해서 빈 공간에 나누어 실제 값을 담아놓고, 실제 값이 있는 주소값으로 목록을 구성하고 저장합니다.
조회 속도가 느린 반면, 값을 추가하거나 삭제할 때 빠르다는 장점이 있습니다.
LinkedList<Integer> linkedList = new LinkedList<Integer>(); // 선언 및 생성
linkedList.add(1); // 1 추가
linkedList.set(1, 10); // 1번째 값을 10으로 수정
linkedList.remove(1); // 1번째 값을 삭제
3. Stack
수직으로 쌓아놓고 넣었다가 위에서부터 빼서 조회하는 형식으로 데이터를 관리합니다.
최근에 저장된 데이터를 나열하고 싶거나, 데이터의 중복 처리를 막을 때 사용합니다.
후입선출 (Last-In-First-out)
Stack<Integer> intStack = new Stack<Integer>(); // 선언 및 생성
intStack.push(1); // 추가
intStack.pop(); // 맨 위 값을 꺼내기(꺼내면 삭제)
System.out.println(intStack.peek()); // 조회
4. Queue
한쪽에서 데이터를 넣고 반대쪽에서 데이터를 꺼내는 집합입니다.
먼저 들어간 순서대로 값을 조회합니다.
선입선출 (First In First Out)
Queue<Integer> intQueue = new LinkedList<>(); // 선언 및 생성
intQueue.add(1); // 조회
System.out.println(intQueue.peek()); // 출력
System.out.println(intQueue.poll()); // 맨 처음 넣었던 값 꺼내기
5. Set
순서가 보장되지 않는 대신 중복을 허용하지 않도록 하는 자료구조입니다.
순서가 없는 데이터의 집합 (데이터 중복 허용 X)
Set<Integer> intSet = new HashSet<Integer>(); // 선언 및 생성
intSet.add(3); // 추가
intSet.contains(3); // 포함되어 있는지
intSet.remove(3); // 3 삭제
6. Map
데이터를 key-value 구조로 저장합니다.
key 값 단위로 중복을 허용하지 않습니다.
HashMap, TreeMap으로 응용할 수 있습니다.
intMap.put("age", 20); // Key에 Value값을 추가
intMap.keySet(); // key 값 전체 출력
intMap.values(); // value 값 전체 출력
intMap.remove("age"); // Key에 있는 Value값 삭제
'Java' 카테고리의 다른 글
| 상속 (Inheritance) (0) | 2024.01.09 |
|---|---|
| 접근 제어자 (Access Modifier), Getter, Setter (0) | 2024.01.08 |
| List (0) | 2024.01.05 |
| 메서드(method) (0) | 2024.01.04 |
| 객체지향 프로그래밍 (2) | 2024.01.03 |