JX405기_비트/Java

Day03-3 배열에 도움되는 메소드 모은 ArrayUtil로 Lotto 추첨기 만들기

_하루살이_ 2023. 1. 15. 15:29

ArrayUtil을 활용하여 Lotto 추첨기 만들기

 

ArrayUtil 클래스

package util;


// 배열을 사용할 때 도움이 될만한 static 메소드를 모아둔 ArrayUtil 클래스
public class ArrayUtil {
    // 1. int[]
    // A. size()
    public static int size(int[] array) {
        return array.length;
    }

    // B. isEmpty()
    public static boolean isEmpty(int[] array) {
        return size(array) == 0;
    }

    // C. get()
    public static int get(int[] array, int index) {
        return array[index];
    }

    // D. contains()
    public static boolean contains(int[] array, int element) {
        for (int i = 0; i < size(array); i++) {
            if (element == get(array, i)) {
                return true;
            }
        }
        return false;
    }

    // E. indexOf()
    public static int indexOf(int[] array, int element) {
        for (int i = 0; i < size(array); i++) {
            if (element == get(array, i)) {
                return i;
            }
        }

        return -1;
    }

    // F. add()
    public static int[] add(int[] array, int element) {
        int[] temp = new int[size(array) + 1];
        for (int i = 0; i < size(array); i++) {
            temp[i] = get(array, i);
        }
        temp[size(array)] = element;

        return temp;
    }

    // G. add()
    public static int[] add(int[] array, int index, int element) {
        int[] temp = new int[size(array) + 1];
        for (int i = 0; i < index; i++) {
            temp[i] = get(array, i);
        }
        temp[index] = element;
        for (int i = index; i < size(array); i++) {
            temp[i + 1] = get(array, i);
        }

        temp = new int[0];
        for (int i = 0; i < size(array); ) {
            if (i != index) {
                temp = add(temp, get(array, i));
                i++;
            } else {
                temp = add(temp, element);
            }
        }

        return temp;
    }

    // H. set()
    public static int set(int[] array, int index, int element) {
        int original = get(array, index);
        array[index] = element;

        return original;
    }

    // I. removeByIndex()
    public static int[] removeByIndex(int[] array, int index) {
        int[] temp = new int[0];
        for (int i = 0; i < size(array); i++) {
            if (i != index) {
                temp = add(temp, get(array, i));
            }
        }

        return temp;
    }

    // J. removeByElement
    public static int[] removeByElement(int[] array, int element) {
        return removeByIndex(array, indexOf(array, element));
    }

    // K. sort()
    public static void sort(int[] array) {
        for (int i = 0; i < array.length - 1; i++) {
            if (array[i] > array[i + 1]) {
                int temp = array[i];
                array[i] = array[i + 1];
                array[i + 1] = temp;
                i = -1;
            }
        }
    }

}

 

Lotto 클래스 

package day0111;

import util.ArrayUtil;

import java.util.Random;

// 로또 번호 시뮬레이턴
// ver 5.0
// 동적할당 배열을 사용한 버젼
public class Ex03LottoNumbers05 {
    public static void main(String[] args) {
        int[] lottoNumbers = new int[0];
        Random random = new Random();
        while (ArrayUtil.size(lottoNumbers) < 6) {
            int temp = random.nextInt(45) + 1;
            if (!ArrayUtil.contains(lottoNumbers, temp)) {
                lottoNumbers = ArrayUtil.add(lottoNumbers, temp);
            }
        }

        ArrayUtil.sort(lottoNumbers);

        for (int i = 0; i < lottoNumbers.length; i++) {
            System.out.println(lottoNumbers[i]);
        }

    }
}