▶ 오늘의 이슈
이 프로그램은 사용자로부터 입력받은 자료구조 유형(List
, Set
, Map
)에 따라 요리 레시피를 저장하고 출력하는 기능을 제공합니다. List
, Set
, Map
각각의 자료구조를 사용하여 데이터의 저장과 관리를 어떻게 할 수 있는지를 보여줍니다.
▶ 소스코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("자료구조명 입력 : ");
String str = sc.nextLine();
switch (str) {
case "List":
// ArrayList를 사용하여 요리 레시피를 저장
ArrayList<String> AL = new ArrayList<>();
while (true) {
String save = sc.nextLine();
if (save.equals("끝")) {
break;
}
AL.add(save);
}
System.out.println("[ " + str + "(으)로 저장된 " + AL.get(0) + " ]");
for (int i = 1; i < AL.size(); i++) {
System.out.println(i + ". " + AL.get(i));
}
break;
case "Set":
// LinkedHashSet을 사용하여 요리 레시피를 저장 (중복 제거)
LinkedHashSet<String> Hs = new LinkedHashSet<>();
while (true) {
String save = sc.nextLine();
if (save.equals("끝")) {
break;
}
Hs.add(save);
}
Iterator<String> it = Hs.iterator();
System.out.println("[ " + str + "(으)로 저장된 " + it.next() + " ]");
int index = 0;
while (it.hasNext()) {
System.out.println(index++ + ". " + it.next());
}
break;
case "Map":
// HashMap을 사용하여 요리 레시피를 저장 (키-값 쌍)
HashMap<Integer, String> Hm = new HashMap<>();
int num = 0;
while (true) {
String save = sc.nextLine();
if (save.equals("끝")) {
break;
}
Hm.put(num++, save);
}
System.out.println("[ " + str + "(으)로 저장된 " + Hm.get(0) + " ]");
for (int i = 1; i < Hm.size(); i++) {
System.out.println(i + ". " + Hm.get(i));
}
break;
}
}
}
▶ 부가 설명
- ArrayList (List)
ArrayList
를 사용하여 동적으로 크기가 조절되는 배열에 데이터를 저장합니다. 사용자가"끝"
을 입력할 때까지 데이터를 계속 추가합니다. 이후 저장된 데이터를 출력합니다.
- LinkedHashSet (Set)
LinkedHashSet
을 사용하여 중복된 데이터를 허용하지 않고 입력 순서를 유지합니다. 사용자가"끝"
을 입력할 때까지 데이터를 추가하고,Iterator
를 사용하여 저장된 데이터를 출력합니다.
- HashMap (Map)
HashMap
을 사용하여 키와 값의 쌍으로 데이터를 저장합니다. 각 레시피에 대해 고유한 정수 키를 부여하고,"끝"
입력 시까지 데이터를 추가한 후 저장된 데이터를 출력합니다.
▶ TIP
- List는 순서가 보장되며, 중복된 데이터를 허용합니다.
- Set은 중복된 데이터를 허용하지 않으며,
LinkedHashSet
은 입력 순서를 유지합니다. - Map은 키-값 쌍으로 데이터를 저장하며,
HashMap
은 순서가 보장되지 않습니다.
'JAVA' 카테고리의 다른 글
(JAVA) 예외처리 자세히 알아보기 2 (0) | 2024.09.19 |
---|---|
(JAVA) 객체지향 이해하기 (0) | 2024.09.19 |
(JAVA) 컬렉션 프레임워크 정리하기 (0) | 2024.09.14 |
(JAVA) 배열 및 컬렉션 정리 (0) | 2024.09.14 |
(JAVA) 조건문과 반복문 (0) | 2024.09.14 |