enum 클래스, List 클래스 및 Map 클래스는 모두 Java 프로그래밍에서 데이터를 구조화하고 조작하는 데 사용되는 클래스들입니다.
공통점
데이터 저장 및 관리: 모두 데이터를 저장하고 조작하는 목적으로 사용됩니다.
컬렉션: 모두 컬렉션 프레임워크의 일부로서, 여러 개의 값을 다루는 데 도움을 줍니다.
차이점
Enum 클래스
enum 클래스는 고정된 값의 집합을 나타내는데 사용됩니다. 보통 상수 값을 표현하기 위해 사용되며, 값이 제한된 경우에 유용합니다.
enum 클래스의 각 요소는 해당 열거 타입의 유일한 인스턴스입니다.
switch 문에서 사용할 때 코드의 가독성을 높일 수 있습니다.
enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
public class EnumExample {
public static void main(String[] args) {
Day today = Day.WEDNESDAY;
System.out.println("오늘은 " + today + "입니다.");
}
}
List 클래스
List 클래스는 순서가 있는 데이터 컬렉션을 나타내는데 사용됩니다. 데이터를 중복해서 저장할 수 있습니다.
ArrayList, LinkedList, Vector 등이 List 인터페이스의 구현체입니다.
인덱스를 통해 데이터에 접근하고, 데이터의 추가, 수정, 삭제 등을 할 수 있습니다.
import java.util.ArrayList;
import java.util.List;
public class ListExamples {
public static void main(String[] args) {
// 문자열 리스트 생성 및 요소 추가
List<String> colors = new ArrayList<>();
colors.add("Red");
colors.add("Green");
colors.add("Blue");
// 정수 리스트 생성 및 요소 추가
List<Integer> numbers = new ArrayList<>();
numbers.add(10);
numbers.add(20);
numbers.add(30);
// 객체 리스트 생성 및 요소 추가
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 25));
people.add(new Person("Bob", 30));
// 리스트 순회
for (String color : colors) {
System.out.println("색상: " + color);
}
for (int number : numbers) {
System.out.println("숫자: " + number);
}
for (Person person : people) {
System.out.println("이름: " + person.getName() + ", 나이: " + person.getAge());
}
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
Map 클래스
Map 클래스는 키-값 쌍의 데이터 컬렉션을 나타내는데 사용됩니다. 각 키는 유일하며, 하나의 키에 대응하는 값이 있습니다.
HashMap, LinkedHashMap, TreeMap 등이 Map 인터페이스의 구현체입니다.
키를 통해 값을 검색하고, 키와 값을 함께 저장 및 삭제할 수 있습니다.
import java.util.HashMap;
import java.util.Map;
public class MapMethodExample {
public static void main(String[] args) {
Map<String, Runnable> actionMap = new HashMap<>();
actionMap.put("밥주기", () -> makeMeal("우유"));
actionMap.put("기저귀 갈기", this::changeDiaper);
// 다른 액션 추가
String selectedAction = "밥주기"; // 사용자가 선택한 액션
if (actionMap.containsKey(selectedAction)) {
actionMap.get(selectedAction).run();
} else {
System.out.println("잘못된 액션입니다.");
}
}
public void makeMeal(String itemName) {
System.out.println("밥주기: " + itemName + " 사용");
// 밥주기 로직
}
public void changeDiaper() {
System.out.println("기저귀 갈기: 기저귀 아이템 사용");
// 기저귀 갈기 로직
}
}
요약하면, enum 클래스는 상수 값의 집합을 정의하고 사용하며, List 클래스는 순서 있는 데이터 컬렉션을, Map 클래스는 키-값 쌍의 데이터 컬렉션을 다루는 데 사용됩니다. 어떤 클래스를 선택할지는 데이터의 특성과 사용 목적에 따라 결정되어야 합니다.
변수의 집합은 주로 는 List 클래스에 적합한듯하고,
메소드의 집합은 주로 Map 클래스에 적합한 듯 보이는 데 니 생각은 어때?
맞습니다, 당신의 생각이 맞습니다. 변수의 집합은 보통 List 클래스에 적합하고, 메소드의 집합은 주로 Map 클래스에 적합합니다. 각 클래스의 특징과 목적에 따라 데이터를 구조화하고 관리하는 데 적합한 방식을 선택하는 것이 중요합니다.
List 클래스: 순서가 있는 여러개의 속성 관리 (변수 용이)
List 클래스는 데이터를 순차적으로 나열하고 접근하는데 적합합니다. 여러 개의 데이터를 중복 포함할 수 있으며, 인덱스를 사용하여 데이터에 빠르게 접근할 수 있습니다. 따라서 변수들의 집합을 관리하거나 순서가 있는 데이터를 다룰 때 List 클래스를 사용하는 것이 유용합니다.
Map 클래스: 유일한 키로 바로 접근 (메소드 용이)
Map 클래스는 키-값 쌍의 데이터를 관리하는데 적합합니다. 각 키는 유일하며, 키를 기반으로 값에 접근할 수 있습니다. 메소드의 집합을 관리하고 이름을 키로 사용하여 메소드를 검색하는데 유용합니다. 예를 들어, 이름을 키로 사용하여 메소드를 호출하거나 관리할 수 있습니다.
'Java' 카테고리의 다른 글
나의 나쁜 코딩 습관 정리하기 (0) | 2023.09.07 |
---|---|
자바 - 객체참조 (0) | 2023.08.27 |
자바 별찍기 - 원모양 만들기 (feat.원의 방정식) (0) | 2023.08.19 |
자바 별찍기 - 마름모 만들기 (0) | 2023.08.18 |
스캐너(Scanner) : java의 입력기능 (0) | 2023.08.13 |