본문 바로가기
인천일보아카데미/- 학습일지

[학습일지]JAVA교육일지 23일차

by w1z 2022. 6. 4.

1. 배열(Array)

  • 배열복사
  • 향상된 for문
  • 배열 초기화 리스트, 배열 초기자(Initializer)

1. 배열(Array)

  (1) 배열 복사

   a. 값형 복사 - Side Effect가 없다.

int a = 10;
int b;

b = a;

System.out.println(a);
System.out.println(b);

a++;

System.out.println(a);
System.out.println(b);


//output 
----> 10
----> 10
----> 11
----> 10

// a의값을 b에 대입하고, a가 증감했지만 b는 여전히 a의 초기값인 10이다.

   

   b. 배열 복사(참조형 복사) - Side Effect가 있다. => 복사된 변수가 있었을 때, 그 중 하나를 조작하면 나머지도 영향을 받는다.

public static void output(int[] num) {
		
	for (int i=0; i<num.length; i++) {
		System.out.printf("%d ", num[i]);
	}
	System.out.println();
} //배열에 값 넣기


int[] a = new a[3];

a[0] = 100;
a[1] = 200;
a[2] = 300;

output(a);

int[] b = new b[3];

b = a;
output(b);

a[0] = 500; // a[0]의 값 변경

output(a);
output(b);


//output
----> 100 200 300 //원래 a[0,1,2]값 
----> 100 200 300 //b=a 대입받은 b[0,1,2]값
----> 500 200 300 //변경된 a[0,1,2]값
----> 500 200 300 //대입 안했지만 같이 변경된 b[0,1,2] 값

 

  (2) 향상된 for문

   - 배열이나 컬렉션을 대상으로만 사용가능(iterator를 지원하는 자료형에 한해서)

   - 루프 변수가 없다. (안정성 높으며 코드가 간결해진다.)

   - 배열의 모든 요소를 순차적으로 자동 탐색한다.

   - 속도가 for문보다 빠르다.

   - 읽기 전용 반복문. (요소의 값을 수정 할 수 없다.)

<형식>

for (타입 변수 : 집합) {
	실행코드;
}

 

  (3) 배열 초기화 리스트, 배열 초기자(Initializer)

int[] test1 = new int[] {1,2,3,4,5};
int[] test2 = {1,2,3,4,5};

//위 두 방법 모두 사용 가능하며, 밑에 방법이 더 간결하다.

MEMO>

# 배열은 for문이랑 한쌍이다!

 

# 배열을 그림으로 천천히 생각해보자.