배열 헷갈리는 부분들이 간단히 실습해보자 ! !
- 주석에 간단히 설명을 달아뒀으니 해석하며 다시 풀어보자 !
package arrayex;
import java.util.Arrays;
public class ArrayEx {
public static void main(String[] args) {
int iArr[] = {1,2,3};
// 배열크기가 5개짜리로 바꿔라
int tem[] =new int[5];
// iArr[i]의 주소값을 tem[i]로 복사함
// 참조변수, 주소값을 넣어줬기 때문에, 참조하는 주소값이 같아짐
for (int i=0; i<iArr.length; i++) {
// 참조변수 중요함✅✅✅✅✅✅
// iArr의 배열값을 tem의 배열에 복사해줌
tem[i] = iArr[i];
// System.out.println(tem[i]);
}
// iArr = tem;
// tem의 값은 변화해도 iArr의 값은 변경되지 않음
// 왜냐 tem[i] = iArr[i];에서 보면 알듯 iArr의 값으로 tem값을 참조하고 있기 때문에
tem[0] = 300;
// tem[i] = iArr[i];를 보면 알수 있듯 참조변수로 주소값을 줬기 때문에 값이 변경됨
iArr[1] = 400;
// i값을 한번에 받아옴
for(int n:iArr) {
System.out.println(n);
}
int iArr2[] = {1,2,3};
int arr3[] = new int[5];
// iArr2의 0번째부터의 값을 => arr3배열에 넣을건데 2번째[2]부터 시작하여 / iArr2 길이만큼 복사
System.arraycopy(iArr2, 0, arr3, 2, iArr2.length); // 0, 0, 1, 2, 3이 복사됨
System.out.println(Arrays.toString(arr3));
int arr4[] = null;
// arr4에 arr3의 값 + 5칸을 추가할 수 있음/ arr3의 값을 받아와서 그 뒤로 5칸을 0으로 채워줌
arr4 = Arrays.copyOf(arr3, arr3.length+5);
// Arrays.toString로 값을 받아야 주소를 확인할 수 있음
System.out.println(Arrays.toString(arr4));
}
}
결과값 :

split 응용 실습
- split이란 ()안에 있는 내용을 기준으로 자동으로 나누어 주는 기능을 한다.
package arrayex;
public class MainArgsEx {
public static void main(String[] args) {
String s = "100 200 300";
// 공백을 기준으로 찾아줌
String[] sArr = s.split(" ");
System.out.println(sArr[0]);
System.out.println(sArr[1]);
System.out.println(sArr[2]);
// sArr의 값을 전부 가져옴
for (String i:sArr) {
System.out.println(i);
}
}
}
결과값 :
