(JAVA) 자료구조를 활용한 요리 레시피 메모장 만들기

2024. 9. 14. 09:27·JAVA

▶ 오늘의 이슈

이 프로그램은 사용자로부터 입력받은 자료구조 유형(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;
        }
    }
}

▶ 부가 설명

  1. ArrayList (List)
    • ArrayList를 사용하여 동적으로 크기가 조절되는 배열에 데이터를 저장합니다. 사용자가 "끝"을 입력할 때까지 데이터를 계속 추가합니다. 이후 저장된 데이터를 출력합니다.
  2. LinkedHashSet (Set)
    • LinkedHashSet을 사용하여 중복된 데이터를 허용하지 않고 입력 순서를 유지합니다. 사용자가 "끝"을 입력할 때까지 데이터를 추가하고, Iterator를 사용하여 저장된 데이터를 출력합니다.
  3. 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
'JAVA' 카테고리의 다른 글
  • (JAVA) 예외처리 자세히 알아보기 2
  • (JAVA) 객체지향 이해하기
  • (JAVA) 컬렉션 프레임워크 정리하기
  • (JAVA) 배열 및 컬렉션 정리
lastdove
lastdove
lastdove 님의 블로그 입니다.
  • lastdove
    lastdove 님의 블로그
    lastdove
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • Spring (16)
      • JAVA (17)
      • JAVA 알고리즘 (20)
      • Project (5)
      • SQL 문제풀이 (17)
      • Git&Linux (2)
      • Web development(입문) (2)
      • Sparta (1)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
lastdove
(JAVA) 자료구조를 활용한 요리 레시피 메모장 만들기
상단으로

티스토리툴바