JAVA

java_메서드(함수만들기_연습)_22.05.25(day6)

양빵빵 2022. 5. 25. 15:26

// printFoods배열의 내부데이터를 출력하는 함수
// foods 배열에 마지막위치에 데이터를 추가하는 함수 push()
// 배열복사
// 인덱스 맨끝 데이터 삭제 pop
// indexOf배열의 인덱스를 탐색하는 함수
// boolean 함수
// 배열 중간 인덱스 삭제 함수
// insert 배열 중간에 데이터 삽입
// modify 배열 데이터 값 수정
 // clear 배열 데이터 초기화

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

==============↓ 강사님이 해주심=========

package day06;

import java.util.Arrays;

public class MethodPracticeA {
    static String[] foods = {"떡볶이", "치킨", "파스타"};

    //배열에 마지막 위치에 데이터를 추가하는 함수
    static void push(String newFood) {
        String[] temp = new String[foods.length + 1];
        for (int i = 0; i < foods.length; i++) {
            temp[i] = foods[i];
        }
        temp[temp.length - 1] = newFood;
        foods = temp;
    }
    // 배열 내부데이터 출력함수
    static void printFoods() {
        System.out.println(Arrays.toString(foods));
    }

    static int indexOf(String targetName) {
        for (int i = 0; i < foods.length; i++) {
            if (targetName.equals(foods[i])) {
                return i;
            }
        }
        return -1;
    }
    static boolean include(String targetName) {
        return indexOf(targetName) != -1;
    }
    static void pop() {
        String[] temp = new String[foods.length - 1];
        for (int i = 0; i < temp.length; i++) {
            temp[i] = foods[i];
        }
        foods = temp;
    }

    static void remove(String targetName) {
        int index = indexOf(targetName);
        if (!include(targetName)) {
            System.out.println("존재하지 않는 음식명입니다");
            return;
        }
        for (int i = index; i < foods.length-1; i++) {
            foods[i] = foods[i+1];
        }
        pop();
    }

    static void modify(int targetIdx, String targetName) {
        foods[targetIdx] = targetName;
    }
    static void clear() {
        foods = new String[0];
    }
    static void insert(int targetIdx, String targetName) {
        String[] temp = new String[foods.length + 1];
        for (int i = 0; i < foods.length; i++) {
            temp[i] = foods[i];
        }
        for (int i = temp.length - 1; i > targetIdx; i--) {
            temp[i] = temp[i-1];
        }
        temp[targetIdx] = targetName;
        foods = temp;
    }

    public static void main(String[] args) {

        printFoods();
        push("라면");
        push("김치찌개");
        printFoods();

        // idx에 2가 리턴되어야 함.
        int idx = indexOf("파스타");
        // idx에 4가 리턴되어야 함.
        int idx2 = indexOf("김치찌개");
        // idx에 -1이 리턴되어야 함.
        int idx3 = indexOf("짜장면");

        remove("김치찌개"); // foods배열에서 김치찌개 제거
        remove("망고"); // 존재하지 않는 음식명입니다 출력.

        printFoods();
        /*

        boolean flag = include("파스타"); // 파스타 발견시 true 리턴
        boolean flag2 = include("양념치킨"); // 양념치킨 미발견시 false 리턴

        insert(3, "파인애플"); // 3번 인덱스에 파인애플 삽입
        modify(2, "닭갈비");  // 2번 인덱스 데이터 닭갈비로 수정
        clear();  // foods배열 모든 데이터 삭제

         */
    }
}