*JAVA*

[java] 배열(Array)

깐부로부터 2021. 10. 22. 02:23

변수는 값을 하나만 받는 반면에,

배열은 하나의 공간에 여러개의 값을 담을 수 있다.

단, '같은 자료형의 값들'이어야 한다.

정리를 하자면 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 배열이라 한다.

=> 배열의 각 index 자리에 실제 값이 담긴 index(같은 크기로 인덱스를 만듦!)는 "0"부터 시작한다. 

 

- 배열을 왜 써야 할까?

변수만 이용해서 프로그래밍을 한다면..?

0, 2, 3, 4, 5................... 값이 늘어날때마다 변수를 만들어서 기록하고싶을 때 노가다(?)수작업없이

좀더 용이하게 코딩을 할 수 있다.

 

1. 배열 선언

1) 자료형 배열명[];

    ex. int arr[];

2. 자료형[] 배열명; => 요방법을 주로 사용!

    ex. int[] arr;

 

2. 배열 할당

이 배열에 몇개의 값이 들어갈지 배열의 크기를 정해주는 과정

지정한 갯수만큼 값이 들어갈 방, index 공간이 만들어진다.

 

[표현법]

int [] arr; // 첫째줄에는 int형 배열 arr선언

arr = new int[5]; // 둘째줄에는 변수arr에 5칸짜리(0~4 index)배열을 할당

 

int[] arr = new int[5]; // 선언과 동시에 할당

 

배열도 참조형이다!

참조형 : new

 

3. 배열의 아쉬운 점

한번 지정한 배열의 크기는 변경 불가!!!!

=> 배열의 크기를 변경하고자 한다면?

                                       어쩔 수 없이 배열을 다시 만들어야 한다~

배열 다시 만들기! => 할당만 다시 해주면 된다 => 배열의 이름만 가져다 쓰는것

 


반복문 써보기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public void method1() {
 
int[] arr = new int[5];
        // 3. 배열의 각 인덱스 자리에 값 대입
        
        /*
         * [표현법]
         * 배열 이름[인덱스 값] = 값; // ★0부터 시작!
         */
        
        arr[0= 1;
        arr[1= 2;
        arr[2= 3;
        arr[3= 4;
        arr[4= 5;
        
        // 변수랑 차이가 없죠~
        System.out.println(arr[0]); //1
        System.out.println(arr[1]); //2
        System.out.println(arr[2]); //3
        
        
        // 배열의 가장 큰 장점 : 반복문을 사용가능
            for(int i = 0; i <= 4; i++) {
            System.out.println(arr[i]);
        }        // 1, 2, 3, 4, 5 
        
    }
cs

 

 

최댓값, 최솟값 구하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public void method3() {
        
        // 사용자로부터 입력을통해 배열에 값을 담아서
        // 해당 배열에서 가장 작은값 즉, 최댓값을 구하는 메소드를 만들어보자!
        
        int[] arr = new int[5];        
        Scanner sc = new Scanner(System.in);
        
        for (int i = 0; i <= arr.length-1; i++) {
            System.out.print(" 정수 입력 > ");
            arr[i] = sc.nextInt();
        }
        // 최댓값 max에 arr배열 인덱스0을 대입하자. 
        int max = arr[0];
        
        // for문으로 arr의 인덱스 값을 돌려서 max에 대입되어있는
        // 인덱스 0의 값과 비교한다.
        for(int i = 0; i <= arr.length-1; i++) {
            if(max < arr[i]) { // max보다 arr[i] 값이 크면
                max = arr[i];  // max에 그 인덱스값을 
            }
        }
        System.out.println("최댓값 : " + max);
    }
cs

 

 

배열의 길이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void method6() {
        
        // 1. 배열 선언 + 할당
        int[] iArr = new int[3]; // 0번, 1번, 2번
        double[] dArr = new double[5]; // 0번, 1번, 2번, 3번, 4번
        
        System.out.println(iArr.equals(dArr));
        
        // 배열이름.length : 배열의 길이(크기) => 정수형 반환
        System.out.println("iArr의 크기 : " + iArr.length); //3
        System.out.println("dArr의 크기 : " + dArr.length); //5
        
        System.out.println(iArr[0]); //0
        System.out.println(dArr[0]); //0.0
    }
cs

 

배열의 모든 누적 합 구하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public void method7() {
        
        int[] arr = new int[5]; // 0, 1, 2, 3, 4
        
        arr[0= 5;
        arr[1= 15;
        arr[2= 156;
        arr[3= 20165;
        arr[4= 4894;
        
        int sum = 0;
        for(int i = 0; i <= arr.length-1; i++) {
            
            sum +=arr[i];
        }
        System.out.println(sum); //25235
    }
cs

 

 

'*JAVA*' 카테고리의 다른 글

[java] 객체(Object)  (0) 2021.10.24
[java] 배열복사(Array copy)  (0) 2021.10.24
[java] 분기문 - continue  (0) 2021.10.20
[java] 분기문 - break  (0) 2021.10.20
[java] do-while문  (0) 2021.10.20