List
- 배열 (Array)
- 정적 배열 : 크기가 고정되어 있으며, 생성 시 크기를 지정합니다.
예시)
int[] array = new int[5]; // 길이가 5인 정적 배열
- 리스트 (ArrayList)
- 동적 배열 : 크기가 가변적이며, 요소를 추가하거나 삭제할 수 있습니다.
예시)
import java.util.ArrayList;
ArrayList<String> list = new ArrayList<>(); // ArrayList 선언
list.add("Apple"); // 요소 추가
list.add("Banana");
list.set(1, "Orange"); // 위치 1의 요소를 "Orange"로 변경
list.remove(0); // 위치 0의 요소 삭제
list.clear(); // 리스트의 모든 요소 삭제
- 연결 리스트 (LinkedList)
- 메모리의 여러 위치에 데이터를 저장하며, 각 요소가 다음 요소를 참조합니다.
- 속도가 상대적으로 느림.예시)
import java.util.LinkedList;
LinkedList<String> linkedList = new LinkedList<>();
linkedList.add("Apple");
linkedList.add("Banana");
linkedList.set(1, "Orange");
linkedList.remove(0);
linkedList.clear();
**의문점** : linkedlist랑 arraylist 둘 중에 하나를 택해서 사용해야될 특정 상황이 있는가?
- `ArrayList`는 인덱스 접근이 빠르지만, 중간에 요소를 삽입하거나 삭제할 때 느릴 수 있습니다.
- `LinkedList`는 요소 삽입과 삭제가 빠르지만, 인덱스 접근 속도가 느릴 수 있습니다.
Stack
- 수직으로 값을 쌓는 데이터 구조입니다.
예시)
import java.util.Stack;
Stack<String> stack = new Stack<>();
stack.push("Apple"); // 값 추가
stack.push("Banana");
String last = stack.pop(); // 마지막에 추가된 값 제거 및 반환
boolean empty = stack.isEmpty(); // 스택이 비어있는지 확인
String peek = stack.peek(); // 마지막에 추가된 값 조회
Queue (FIFO : First In First Out)
- 가장 먼저 들어온 요소가 가장 먼저 나오는 데이터 구조입니다.
예시)
import java.util.LinkedList;
import java.util.Queue;
Queue<String> queue = new LinkedList<>();
queue.offer("Apple"); // 값 추가
queue.offer("Banana");
String first = queue.poll(); // 가장 먼저 들어온 값 제거 및 반환
boolean empty = queue.isEmpty(); // 큐가 비어있는지 확인
Set
- 순서를 보장하지 않고 중복을 허용하지 않는 데이터 구조입니다.
- HashSet : 중복된 요소를 허용하지 않으며 순서를 보장하지 않습니다.
- TreeSet : 중복된 요소를 허용하지 않으며 오름차순으로 정렬됩니다.
- LinkedHashSet : 중복된 요소를 허용하지 않으며 삽입 순서를 유지합니다.
예시)
import java.util.HashSet;
import java.util.TreeSet;
import java.util.LinkedHashSet;
import java.util.Set;
Set<String> hashSet = new HashSet<>();
hashSet.add("Apple");
hashSet.add("Banana");
Set<String> treeSet = new TreeSet<>();
treeSet.add("Banana");
treeSet.add("Apple");
Set<String> linkedHashSet = new LinkedHashSet<>();
linkedHashSet.add("Banana");
linkedHashSet.add("Apple");
boolean contains = hashSet.contains("Apple"); // Set에서 특정 값 존재 여부 확인
Map (Key-Value Pair)
- 키와 값의 쌍으로 데이터를 저장합니다. 키는 중복되지 않아야 합니다.
예시)
import java.util.HashMap;
import java.util.Map;
Map<String, String> map = new HashMap<>();
map.put("fruit1", "Apple");
map.put("fruit2", "Banana");
String value = map.get("fruit1"); // 키에 해당하는 값 반환
Set<String> keys = map.keySet(); // 모든 키 반환
Collection<String> values = map.values(); // 모든 값 반환
'JAVA' 카테고리의 다른 글
(JAVA) 객체지향 이해하기 (0) | 2024.09.19 |
---|---|
(JAVA) 자료구조를 활용한 요리 레시피 메모장 만들기 (0) | 2024.09.14 |
(JAVA) 배열 및 컬렉션 정리 (0) | 2024.09.14 |
(JAVA) 조건문과 반복문 (0) | 2024.09.14 |
(JAVA) 기초 개념 정리 2 (0) | 2024.09.14 |