1. 배열
public class Main {
  public static void main(String[] args) {
    //변수 만드는 방법
    String a;
    int b;
    //배열 만드는 방법 - 기본
    String[] str;
    int[] num;

    //배열 만드는 방법2 - 크기 지정
    String[] str2 = new String[3];

    // 실습
    int[] num2;
    num2 = new int[3];

    num2[0] = 10; // 인덱스 즉 순서

    int number = num2[0];

    System.out.println(number);

    // 실습 2
    int[] numbers = {1, 2, 3};

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

    //배열의 요소 값을 변경하는 방법
    numbers[2] = 5;

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

    //배열은 여러 개의 데이터를 관리하기 편리하다.
    //배열은 한번 크기가 만들어지면 그 크기를 변경할 수 없다.
    //따라서 크기를 변경해야하는 일이 발생하게 되면 새로운 크기의 배열을 새로 만들고 기존 배열의 데이터를 복사해서 사용해야한다.

    int[] nums1 = {1, 2, 3};
    int[] nums2; // 4, 5를 추가하여 새로만들기
    nums2 = new int[5];
  1. 배열 응용

  2. 배열 적용

//동적 배열 사용을 위해서는 기능 먼저 가져오게 된다.
import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    int[] nums1 = {1, 2, 3};
    int[] nums2; // 4, 5를 추가하여 새로만들기
    nums2 = new int[5];

    for(int i = 0; i < 3; i++){
      nums2[i] = nums1[i];
    }
    nums2[3] = 4;
    nums2[4] = 5;

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

    //자바에서 배열은 한번 생성되면 그 크기를 변경할 수 없다.
    //따라서 크기를 변경해야하는 경우에는 동적배열(arrayList)를 사용한다.
    //동적 배열은 기본 배열과 아주 유사하나 요소를 추가/제거/수정을 자유롭게 할 수 있다.

    //동적 배열 생성
    ArrayList<Integer> nums3 = new ArrayList<>();
    //<Integer>제네릭은 데이터의 형을 제한한다.

    // 동적 배열에 데이터 추가
    nums3.add(1);
    nums3.add(2);
    nums3.add(3);

    //동적 배열에서 데이터를 가져오기
    int num1 = nums3.get(0);
    System.out.println("1번째 요소 : "+num1);

    for(int i = 0; i < nums3.size(); i++){
      int num = nums3.get(i);
      System.out.println(i+1 + "번째 요소 : " + num);
    }
    //동적 배열에서의 데이터 삭제
    nums3.remove(0); // 인덱스 값 삭제

    //동적 배열에서의 갯수 확인
    System.out.println("동적 배열 갯수 확인 : " + nums3.size());

    for(int i = nums3.size()-1; i >= 0; i--){
      System.out.println(nums3.get(i));
    }
  }

}