Java

KH 정보교육원 (5일차) 수업_배열

최종군 2024. 6. 18. 17:50

배열 :

 참조 변수로 stack영역에 할당되며 배열 공간의 주소를 저장

배열 공간의 주소를 이용해 인덱스를 참조하는 방식으로 값을 처리한다.

 

 

 

 

 

 

배열 생성 방법

 

int[] num = new int  [5];

 

배열 생성 및 초기화 1

 

int[] num = new int[] {1,2,3};

 

배열 생성 및 초기화 2

 

int[] num = {1,2,3};

 

 

배열 복사 : 

얕은 복사

int [] num1 =new int[4];

int [] num2 = num1

 

깊은 복사 방법 4가지  

 

 for(int i = 0; i < arr1.length; i++) {

 

arr2[i] = arr1[i];

}

 

System.arraycopy(arr1, 0, arr2, 0, arr1.length);

 

arr2 = Arrays.copyOf(arr1, arr1.length);

 

arr2 = arr1.clone();

 

 


 

실습문제 : 배열 

 

 

 

길이가 10인 배열을 선언하고 1부터 10까지 순서대로 배열을 출력하는 문제이다 

 

 

 

public void practice1_0() {

int[] arr = new int[10];    // 1. 먼저 배열의 길이가 10을 가지는 배열 참조 변수 arr을 선언한다.  

int count = 1;

for(int i = 0; i < arr.length; i++) {  // 2. int = 0, 배열의 인덱스 길이 0부터 시작을 해 배열 인덱스에 값을 저장한다 
arr[i] += count++; //              // 2. arr[i] [] 안에 i를 통해서 해당하는 인덱스 위치를 할 수 있다. 
Syste.out.print(arr[i]);          // i 초기값이 0이므로 인덱스 0번부터  시작을 한다.  이때 나는 증감연산자를 통해서 
if(i != arr.length) {                  // 인덱스는 1부터 10까지 입력이 되게 만들었다 와 동일한 뜻이다 arr[i] = i + 1;
System.out.print(" ");         
}


}

 

 

 

 

 

이번에는 10부터 1까지 내림차순으로 출력을하는 문제이다 

 

 

 

public void practice2() {

int[] arr = new int[10];                               //  배열의 길이가 10인 변수를 선언
                                                                    // 
for (int i = 0; i < arr.length; i++) {                  // arr[i] 인덱스에 i 값이 증가함에 따라 인덱스에다가 원하는 값을 입력이 
arr[i] = arr.length - i;                                     //  이 가능하다 arr.length는 10의 길이를 가지는 배열이다 - i
                                                                    //  이 가능하다 arr.length는 10의 길이를 가지는 배열이다 - i는 배열  System.out.print(arr[i]);                                //  - i는 반복문이 수행하는 동안 값이 증가해 길이 10이라는 값에서 
if (i != arr.length) {                                        // 반복문의 조건을 수행할 때 까지 반복 수행한다 

System.out.print(" ");
}
}
}

 

 

 

 

 

String[] str = new String[] { "사과", "귤", "포도", "복숭아", "참외" };

// System.out.print(num[i]);                // 배열 안에 사과, 귤, 포도, 복숭아, 참외라는 String 자료형의 
                                                           // 배열을 선언한다 
for (int i = 0; i < str.length; i++) {        // for문으로 i가 str.length를 조건을 만족할 때 까지 반복을 수행한다 
if (str[i].equals("귤")) {                       // str[i].equals("귤") if가 str[] 배열 i번째 귤이라는 값을 만족을 하면 
System.out.print(str[i]);                      // 귤을 출력을 한다 
}
}
}