int [] m = { 1, 2, 3 }; 와 같이 선언한 배열이 있습니다.
m[2] 위치에 100이라는 값을 삽입하고 기존에 있던 m[2] 요소 값 부터는 뒤로 미루는 코딩을 진행해보겠습니다.
전체 소스 코드
public class Review06 {
public static void main(String[] args) {
int [] m = {1,2,3}; // 요소 값 3개인 배열 선언
m = test(m); // test 함수 호출
// 배열의 마지막 인덱스부터 우리가 바꾸고 싶은 인덱스 전까지 반복문을 돌린다.
for (int i = m.length-1; i > 1; i--) { // 뒤에 것부터 한칸 미루고 100을 삽입하겠다.
m[i] = m[i-1]; // 인덱스i-1의 값을 인덱스 i로 이동
}
m[2] = 100; // index m[2]에 100 요소 삽입
String regex = ",";
for (int i = 0; i < m.length; i++) {
System.out.print(String.format("[%s]", m[i]));
}
} //main
private static int[] test(int[] m) {
int [] temp = new int[6];
for (int i = 0; i < m.length; i++) {
temp[i] = m[i]; // m[i]의 요소 값을 temp[i]에 대입
}
return temp; // temp 주소값을 가지고 return
} //test
}
출력 값
크기가 더 큰 배열에 요소 값 대입 (test 함수 선언)
private static int[] test(int[] m) {
int [] temp = new int[6]; // 크기가 6인 temp 배열 선언
for (int i = 0; i < m.length; i++) {
temp[i] = m[i];
}
return temp;
} //test
첫 번째 위와 같이 temp[] 라는 임시 배열을 선언하여 그 크기를 6으로 지정한 후 기존의 m[] 배열의 요소 값을 옮겨 줍니다. 여기서 중요한 것은 return 값으로 temp의 주소 값을 반환해주어야 한다는 것입니다.
main 함수
public static void main(String[] args) {
int [] m = {1,2,3};
m = test(m);
m[2] = 100;
String regex = ",";
for (int i = 0; i < m.length; i++) {
System.out.print(String.format("[%s]", m[i]));
}
} //main
main 함수에서는 test함수를 호출한 후 m[2] 자리에 100을 삽입해 줍니다.
이때 test함수를 호출하여 return 받은 temp 배열의 주소값을 m 배열에 참조 해주어야 하는것이 중요합니다.
반응형
'Backend > JAVA' 카테고리의 다른 글
[JAVA] 이진 탐색, 이진 검색 (Binary Search) (0) | 2021.09.12 |
---|---|
[JAVA] 2차원 배열을 1차원 배열로 변환 (0) | 2021.09.12 |
[JAVA] 주민등록번호 유효성 검사 (0) | 2021.09.01 |
[JAVA] 함수 (메서드)란? (0) | 2021.08.30 |
[JAVA] 구구단 출력 (for문) (0) | 2021.08.30 |