
1. 컬렉션의 기본 구성
자바 컬렉션은 크게 세 가지 주요 인터페이스로 나뉩니다:
- List: 순서가 있는 데이터의 집합. 중복 요소를 허용.
- Set: 중복을 허용하지 않는 데이터의 집합.
- Map: 키-값 쌍으로 구성된 데이터의 집합. 키는 중복 불가, 값은 중복 허용.
주요 인터페이스 및 구현 클래스
인터페이스 | 구현 클래스 |
List | ArrayList, LinkedList, Vector |
Set | HashSet, LinkedHashSet, TreeSet |
Map | HashMap, LinkedHashMap, TreeMap |
2. List (리스트)
"순서를 유지하며, 중복을 허용하는 데이터 집합."
ArrayList
- 특징: 배열 기반, 인덱스로 빠르게 접근 가능.
- 단점: 삽입/삭제 시 성능 저하.
import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
list.add("Cherry");
for (String item : list) {
System.out.println(item);
}
}
}
LinkedList
- 특징: 노드 기반, 삽입/삭제가 빠름.
- 단점: 인덱스 접근 성능이 낮음.
import java.util.LinkedList;
public class LinkedListExample {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("Dog");
list.add("Cat");
list.add("Rabbit");
for (String item : list) {
System.out.println(item);
}
}
}
3. Set (집합)
"중복을 허용하지 않는 데이터 집합."
HashSet
- 특징: 순서를 유지하지 않음.
- 용도: 중복 제거.
import java.util.HashSet;
public class HashSetExample {
public static void main(String[] args) {
HashSet<String> set = new HashSet<>();
set.add("One");
set.add("Two");
set.add("Two"); // 중복된 값은 추가되지 않음
for (String item : set) {
System.out.println(item);
}
}
}
TreeSet
- 특징: 정렬된 순서로 저장.
import java.util.TreeSet;
public class TreeSetExample {
public static void main(String[] args) {
TreeSet<Integer> set = new TreeSet<>();
set.add(10);
set.add(5);
set.add(20);
for (int item : set) {
System.out.println(item); // 5, 10, 20
}
}
}
4. Map (맵)
"키(Key)-값(Value) 쌍으로 데이터를 저장."
HashMap
- 특징: 순서를 유지하지 않음. 빠른 검색 가능.
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("Apple", 1);
map.put("Banana", 2);
map.put("Cherry", 3);
for (String key : map.keySet()) {
System.out.println(key + " : " + map.get(key));
}
}
}
LinkedHashMap
- 특징: 입력된 순서를 유지.
import java.util.LinkedHashMap;
public class LinkedHashMapExample {
public static void main(String[] args) {
LinkedHashMap<String, Integer> map = new LinkedHashMap<>();
map.put("A", 100);
map.put("B", 200);
map.put("C", 300);
for (String key : map.keySet()) {
System.out.println(key + " : " + map.get(key));
}
}
}
5. 컬렉션의 정렬
자바는 Collections 클래스를 이용하여 리스트를 정렬할 수 있습니다.
import java.util.ArrayList;
import java.util.Collections;
public class SortExample {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(3);
numbers.add(8);
Collections.sort(numbers); // 오름차순 정렬
System.out.println(numbers); // [3, 5, 8]
Collections.reverse(numbers); // 내림차순 정렬
System.out.println(numbers); // [8, 5, 3]
}
}

'Back_End > JAVA' 카테고리의 다른 글
자바(JAVA) Stack, Queue, Deque 란? (0) | 2024.12.18 |
---|---|
자바 ReflectionUtils 리플렉션을 쉽게 활용하는 방법 (0) | 2024.12.16 |
추상 클래스와 인터페이스 (0) | 2024.12.11 |
객체지향 설계의 5원칙 (SOLID) (0) | 2024.12.11 |
Java에서 equals()와 hashCode() 메서드 오버라이딩 (1) | 2024.12.06 |