반응형
제목: Java 컬렉션 프레임워크 살펴보기: 목록, 세트 및 맵
소개: Java 컬렉션 프레임워크는 객체 컬렉션을 효율적으로 처리하기 위한 포괄적인 클래스 및 인터페이스 세트를 제공합니다. 컬렉션을 통해 프로그래머는 구조화되고 조직화된 방식으로 데이터를 저장, 조작 및 검색할 수 있습니다. 이 블로그 게시물에서는 Java 컬렉션 프레임워크의 세 가지 핵심 구성 요소인 목록, 세트 및 맵에 대해 자세히 설명합니다. 이러한 데이터 구조와 사용법을 이해하면 데이터를 효과적으로 처리하고 강력한 Java 애플리케이션을 구축할 수 있습니다.
- 목록: 목록은 중복 요소를 허용하는 정렬된 모음입니다. 특정 위치에서 요소에 액세스, 추가, 제거 및 수정하는 방법을 제공합니다. 여기서는 목록의 다음 측면을 살펴보겠습니다.
1.1. 배열 목록:
자바import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
System.out.println(fruits); // Output: [Apple, Banana, Orange]
String secondFruit = fruits.get(1);
System.out.println(secondFruit); // Output: Banana
fruits.remove("Apple");
System.out.println(fruits); // Output: [Banana, Orange]
}
}
1.2. 링크드리스트:
자바import java.util.LinkedList;
public class LinkedListExample {
public static void main(String[] args) {
LinkedList<String> colors = new LinkedList<>();
colors.add("Red");
colors.add("Green");
colors.add("Blue");
System.out.println(colors); // Output: [Red, Green, Blue]
String firstColor = colors.getFirst();
System.out.println(firstColor); // Output: Red
colors.removeLast();
System.out.println(colors); // Output: [Red, Green]
}
}
1.3. 벡터 및 스택:
자바import java.util.Vector;
import java.util.Stack;
public class VectorAndStackExample {
public static void main(String[] args) {
Vector<Integer> numbers = new Vector<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println(numbers); // Output: [1, 2, 3]
Stack<String> stack = new Stack<>();
stack.push("Java");
stack.push("Python");
stack.push("C++");
System.out.println(stack); // Output: [Java, Python, C++]
String topLanguage = stack.peek();
System.out.println(topLanguage); // Output: C++
stack.pop();
System.out.println(stack); // Output: [Java, Python]
}
}
- 세트: 세트는 중복 요소를 허용하지 않는 정렬되지 않은 컬렉션을 나타냅니다. 고유성 또는 구성원 확인이 중요한 경우에 유용합니다. 이 섹션에서는 다음에 대해 설명합니다.
2.1. 해시셋:
자바import java.util.HashSet;
public class HashSetExample {
public static void main(String[] args) {
HashSet<String> names = new HashSet<>();
names.add("Alice");
names.add("Bob");
names.add("Alice");
System.out.println(names); // Output: [Alice, Bob]
boolean containsBob = names.contains("Bob");
System.out.println(containsBob); // Output: true
names.remove("Alice");
System.out.println(names); // Output: [Bob]
}
}
2.2. 트리셋:
자바import java.util.TreeSet;
public class TreeSetExample {
public static void main(String[] args) {
TreeSet<Integer> numbers = new TreeSet<>();
numbers.add(5);
numbers.add(2);
numbers.add(8);
System.out.println(numbers); // Output: [2, 5, 8]
int smallestNumber = numbers.first();
System.out.println(smallestNumber); // Output: 2
numbers.remove(5);
System.out.println(numbers); // Output: [2, 8]
}
}
2.3. LinkedHashSet:
자바import java.util.LinkedHashSet;
public class LinkedHashSetExample {
public static void main(String[] args) {
LinkedHashSet<String> cities = new LinkedHashSet<>();
cities.add("New York");
cities.add("London");
cities.add("Paris");
System.out.println(cities); // Output: [New York, London, Paris]
boolean containsLondon = cities.contains("London");
System.out.println(containsLondon); // Output: true
cities.remove("Paris");
System.out.println(cities); // Output: [New York, London]
}
}
- 맵: 맵은 연결된 키를 기반으로 값을 효율적으로 검색할 수 있는 키-값 쌍입니다. 빠른 데이터 조회를 가능하게 하고 요소를 추가, 검색 및 수정하는 방법을 제공합니다. 여기서는 다음 내용을 다룹니다.
3.1. 해시맵:
자바import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
HashMap<String, Integer> ages = new HashMap<>();
ages.put("Alice", 25);
ages.put("Bob", 30);
ages.put("Charlie", 35);
System.out.println(ages); // Output: {Alice=25, Bob=30, Charlie=35}
int bobAge = ages.get("Bob");
System.out.println(bobAge); // Output: 30
ages.remove("Charlie");
System.out.println(ages); // Output: {Alice=25, Bob=30}
}
}
3.2. 트리맵:
자바import java.util.TreeMap;
public class TreeMapExample {
public static void main(String[] args) {
TreeMap<String, String> countries = new TreeMap<>();
countries.put("USA", "United States");
countries.put("GBR", "United Kingdom");
countries.put("FRA", "France");
System.out.println(countries); // Output: {FRA=France, GBR=United Kingdom, USA=United States}
String gbrCountry = countries.get("GBR");
System.out.println(gbrCountry); // Output: United Kingdom
countries.remove("FRA");
System.out.println(countries); // Output: {GBR=United Kingdom, USA=United States}
}
}
3.3. LinkedHashMap:
자바import java.util.LinkedHashMap;
public class LinkedHashMapExample {
public static void main(String[] args) {
LinkedHashMap<String, Integer> scores = new LinkedHashMap<>();
scores.put("Alice", 80);
scores.put("Bob", 90);
scores.put("Charlie", 85);
System.out.println(scores); // Output: {Alice=80, Bob=90, Charlie=85}
int bobScore = scores.get("Bob");
System.out.println(bobScore); // Output: 90
scores.remove("Charlie");
System.out.println(scores); // Output: {Alice=80, Bob=90}
}
}
결론: Java Collections Framework는 데이터의 효율적인 저장, 조작 및 검색을 가능하게 하는 풍부한 데이터 구조 세트를 제공합니다. 목록, 세트 및 맵은 다양한 용도로 사용되며 다양한 기능을 제공합니다. 이러한 구성 요소를 마스터하면 데이터를 효과적으로 처리하고 성능을 최적화하며
반응형
'프로그램 > Chat GPT' 카테고리의 다른 글
Generic: 재사용 가능한 코드 작성 (0) | 2023.05.24 |
---|---|
Java 컬렉션 프레임워크 살펴보기: Lists, Sets and Maps (0) | 2023.05.24 |
Java의 객체 지향 프로그래밍(OOP) 탐색: 클래스(class), 객체(object) 및 상속 (0) | 2023.05.24 |
제어 흐름 및 루핑 구문 이해 (0) | 2023.05.24 |
Java의 변수, 데이터 유형 및 연산자 (0) | 2023.05.24 |