본문 바로가기
JAVA

JAVA(1차 배열)

by 글로리. 2020. 6. 2.

01. 배열

1) 배열 만들기

배열의 선언

// 데이터타입 뒤에 '[]'를 명시.
int[] a;

배열의 할당

  • '[ ]'안에 입력되는 값은 배열의 칸을 의미
// new 예약어 뒤에 데이터 타입과 배열의 칸 수를 []안에 입력.
a = new int[3];

// 선언과 할당을 한번에
int[] a = new int[3];

2) 배열의 활용

값 저장하기

  • 크기가 결정된 배열은 0부터 시작하는 인덱스를 갖는다.

    아래와 같이 인덱스 번호마다 값을 저장

// 인덱스가 0인 칸에 10을 대입
a[0] = 10;

// 인덱스가 1인 칸에 20을 대입
a[1] = 20;

// 인덱스가 2인 칸에 30을 대입 
a[2] = 30;

- 실행 결과

0 1 2
10 20 30

배열에 저장된 값 사용

  • 인덱스 번호를 사용한다는 점을 제외하고는 일반 변수의 사용과 동일.
// 다른변수에 복사
int k = a[0];  // k에 10이 복사됨

// 출력
System.out.println(a[1]);  // 20이 출력됨.

// 연산 
a[2] = a[0] * a[1];  // a[2]자리에 200이 대입됨.

선언, 할당, 값대입 일괄처리

  • 배열 할당시 사이즈를 지정하지 않고 중괄호 '{ }'로 원소들을 직접 나열.
int[] a = new int[] {10, 20, 30, 40};

// new int[] 생략 가능.
int[] a = {10, 20, 30, 40};

- 실행 결과 (실제로 아래표와 같이 출력되지는 않음.)

0 1 2 3
10 20 30 40

3) 배열의 크기

  • '배열이름.length'는 배열의 칸 수를 의미.
int[] a = new int[7];

System.out.println(a.length);   // 7이 출력됨

4) 배열의 원소 나열(반복문을 통한 활용)

  • 파이썬과 다르게 자바는 배열의 원소들을 출력할때에는 반복문을 통해 출력해야 함.
public class Note1
{
    public static void main(String[] args)
    {
        int[] a = {10, 20, 30, 40};

        for (int i=0; i<a.length; i++)   // 배열의 칸 수 만큼 반복
        {
            System.out.println(a[i]);
        }
    }
}

// 실행결과
10
20
30
40

5) 예제

원소의 합 구하기

public class Note2
{
    public static void main(String[] args)
    {
        int[] a = {10, 20, 30};

        // 합을 더할 sum변수 생성
        int sum = 0;

        // 배열의 칸 수 만큼 반복    
        for (int i = 0; i < a.length; i++)
        {
            // 원소들을 sum에 합산.
            sum += a[i];
        }

        System.out.println(sum);
    }
}

// 실행결과
60

원소 중 가장 큰 값 구하기

public class Note3
{
    public static void main(String[] args)
    {
        // 무작위 원소 배열
        int[] a = {1, 9, 5, 4, 2};

        // 최대값을 출력하기 위한 변수 생성
        int max = 0;

        // 배열의 원소 수 만큼 반복
        for (int i = 0; i < a.length; i++)
        {
            // max가 data의 i번째보다 작다면 i번째 원소를 max에 복사
            if (max < a[i])
            {
                max = a[i];
            }
        }
        System.out.println("최대값 = " + max);
    }
}

// 실행결과
최대값 = 9

배열 순서 뒤집기

  • 반복횟수 : '배열의 길이 / 2' 를 이용한다.

  • 교환 될 원소의 인덱스 : '배열의길이 + i + 1'

public class Note4
{
    public static void main(String[] args)
    {
        int[] a = {5, 3, 2, 7, 6};

        // 반복횟수 : 배열의길이 / 2
        for (int i=0; i<a.length/2; i++)
        {
            // 반대쪽 원소의 인덱스 생성
            int k = a.length - i - 1;

            // i번째 원소와 k번째 원소 교환
            int tmp = a[i];
            a[i] = a[k];
            a[k] = tmp;
        }

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

// 실행결과
6
7
2
3
5

'JAVA' 카테고리의 다른 글

JAVA(메서드)  (0) 2020.06.03
JAVA(2차 배열)  (0) 2020.06.02
JAVA(기본문법 활용)  (0) 2020.06.01
JAVA (조건문, 반복문)  (0) 2020.06.01
JAVA (기본_입출력)  (0) 2020.06.01

댓글