Java 204

150. Queue 컬렉션 – 선입선출 메시지 처리 방식

Queue는 선입선출(FIFO: First-In-First-Out) 구조를 가지는 자료구조입니다.먼저 추가한 데이터가 먼저 처리되는 구조로, 작업 요청, 대기열 처리, 메시지 큐 등 다양한 분야에서 활용됩니다.이번 예제에서는 Message 객체를 Queue에 넣고 순서대로 꺼내면서명령어(command)에 따라 서로 다른 작업을 수행하는 구조를 살펴봅니다.📦 Message.javapackage ch15.sec06;public class Message { public String command; public String to; public Message(String command, String to) { this.command = command; this.to = to; }}📌 예제 코드packag..

Java/자바 정리 2025.05.21

149. Stack 컬렉션 – 후입선출 구조 실습

Stack은 후입선출(LIFO: Last-In-First-Out) 구조를 가진 자료구조로,가장 나중에 들어온 데이터가 가장 먼저 나가는 특징이 있습니다.이번 예제에서는 Coin 객체를 Stack에 저장하고, 순서대로 꺼내는 과정을 통해스택의 동작 원리를 확인해 보겠습니다.📦 Coin.javapackage ch15.sec05;public class Coin { private int value; public Coin(int value) { this.setValue(value); } public int getValue() { return value; } public void setValue(int value) { this.value = value; }}📌 예제 코드package ch15.sec05;..

Java/자바 정리 2025.05.21

148. TreeSet에 정렬 기준 주입하기 – Comparator 활용

사용자 정의 객체를 TreeSet에 저장할 때, 정렬 기준을 클래스 내부에 직접 정의하지 않고외부에서 비교 기준을 주입할 수 있는 방법이 바로 Comparator입니다.이번 예제에서는 Fruit 객체를 가격 기준으로 정렬하는 FruitComparator를 만들고,이를 TreeSet에 적용하는 방법을 배워봅니다.📦 Fruit.javapackage ch15.sec05;public class Fruit { public String name; public int price; public Fruit(String name, int price) { this.name = name; this.price = price; }}📦 FruitComparator.javapackage ch15.sec05;import ja..

Java/자바 정리 2025.05.21

147. TreeSet과 Comparable – 사용자 정의 객체 정렬하기

기본 타입이 아닌 사용자 정의 객체를 TreeSet에 저장할 경우,해당 객체가 어떤 기준으로 정렬될지를 명시해야 합니다.이를 위해 자바에서는 Comparable 인터페이스를 구현하여정렬 기준을 직접 정의할 수 있습니다.이번 예제는 Parson 클래스를 나이 기준으로 정렬되도록 만든 후 TreeSet에 저장하는 예제입니다.📦 Parson.javapackage ch15.sec05;public class Parson implements Comparable { public String name; public int age; public Parson(String name, int age) { this.name = name; this.age = age; } @Override public int compar..

Java/자바 정리 2025.05.21

146. TreeMap으로 정렬과 구간 검색하기

TreeMap은 키를 기준으로 자동 정렬되는 Map 컬렉션입니다.데이터를 저장할 때 키의 오름차순으로 정렬되며,firstEntry(), lastEntry() 등을 통해 처음과 마지막 데이터를 쉽게 조회할 수 있습니다.또한, subMap()이나 descendingMap() 등을 사용해 범위 검색이나 역순 탐색도 간단히 처리할 수 있습니다.📌 예제 코드import java.util.*;import java.util.Map.Entry;public class TreeMapExample { public static void main(String[] args) { TreeMap treeMap = new TreeMap(); treeMap.put("apple", 10); treeMap.put("forever",..

Java/자바 정리 2025.05.21

145. TreeSet으로 정렬과 범위 검색하기

TreeSet은 Set 컬렉션 중에서 자동 정렬 기능이 있는 자료구조입니다.저장된 데이터는 입력 순서와 관계없이 오름차순으로 정렬되어 저장되며,특정 값보다 높은 값, 낮은 값, 구간 검색 등 다양한 탐색 기능을 제공합니다.이번 예제에서는 TreeSet을 활용해 정렬, 최대·최소, 범위 검색 기능을 실습해 보겠습니다.📌 예제 코드import java.util.NavigableSet;import java.util.TreeSet;public class TreeSetExample { public static void main(String[] args) { TreeSet scores = new TreeSet(); scores.add(87); scores.add(98); scores.add(75); ..

Java/자바 정리 2025.05.21

144. 멀티스레드 환경에서도 안전한 Map – Hashtable 사용법

Hashtable은 자바에서 가장 오래된 Map 구현체 중 하나로,멀티스레드 환경에서도 데이터를 안전하게 저장할 수 있도록 동기화(Synchronized)가 적용되어 있습니다.이번 예제는 두 개의 스레드가 동시에 데이터를 저장해도 데이터 손실 없이 정확히 저장되는 구조를 보여줍니다.📌 예제 코드import java.util.Hashtable;import java.util.Map;public class HashtableExample { public static void main(String[] args) { Map map = new Hashtable(); Thread threadA = new Thread() { public void run() { for (int i = 1; i 💻 실행..

Java/자바 정리 2025.05.20

143. 키-값 쌍을 저장하는 HashMap – 중복 처리와 순회 방법

자바의 HashMap은 키와 값을 하나의 쌍(Entry)으로 저장하는 대표적인 맵(Map) 컬렉션입니다.키는 중복을 허용하지 않으며, 값은 중복되어도 상관없습니다.이번 예제에서는 HashMap의 기본 사용법과, 저장된 데이터를 키로 순회하는 방법과Entry 객체로 순회하는 방법을 모두 확인해보겠습니다.📌 예제 코드import java.util.*;import java.util.Map.Entry;public class HashMapExample { public static void main(String[] args) { Map map = new HashMap(); map.put("신용권", 85); map.put("홍길동", 90); map.put("동장군", 80); map.put("홍길동",..

Java/자바 정리 2025.05.20

142. HashSet에서 요소를 안전하게 제거하는 방법 – Iterator 활용

HashSet은 중복을 허용하지 않는 집합(Set) 구조로,순서 없이 데이터를 저장하며, Iterator를 통해 순차 접근할 수 있습니다.특히, 반복 중에 요소를 삭제할 때는 반드시 Iterator.remove()를 사용해야 안전하게 처리할 수 있습니다.이번 예제에서는 HashSet에 저장된 문자열을 반복하며 특정 요소를 제거하는 방법을 확인합니다.📌 예제 코드import java.util.HashSet;import java.util.Iterator;import java.util.Set;public class HashSetExample { public static void main(String[] args) { Set set = new HashSet(); set.add("Java"); set...

Java/자바 정리 2025.05.20

141. 사용자 정의 객체의 중복 비교 – hashCode()와 equals() 재정의

HashSet은 중복된 객체를 저장하지 않지만,사용자 정의 클래스를 저장할 때는 equals()와 hashCode()를 제대로 재정의하지 않으면내용이 같더라도 서로 다른 객체로 인식되어 중복 저장될 수 있습니다.이번 예제에서는 Member 클래스를 통해 중복 판단 기준을 명확히 정의해봅니다.📦 Member.javapackage ch15.sec03;public class Member { public String name; public int age; public Member(String name, int age) { this.name = name; this.age = age; } public int hashCode() { return name.hashCode() + age; } public b..

Java/자바 정리 2025.05.20
반응형