프로그램을 작성하는 과정에서 우리는 종종 배열 공간이 충분하지 않은 상황에 처해 있습니다. 예를 들어, 배열 int [] a = {1,2,3,4,5,6,7,8,9,10}; 현재 배열 첨자 위치에 요소를 삽입하고 싶습니다. 어떻게해야합니까? C 언어로 구현하기가 너무 어렵습니다. Memcpy 함수를 하나씩 호출해야하지만 Java에서는 그렇게 번거롭지 않아도됩니다. 배열이라는 일종의 확장 방법이있어 쉽게 구현할 수 있습니다. 코드를 살펴 보겠습니다.
Public Class HelloWorld {public static void main (String [] args) {// 스캐너 s = new Scanner (System.In); // system.out.println ( "숫자를 입력하십시오"); // int num = s.nextInt (); //이 배열 첨자는 9 int [] a = {1,2,3,4,5,6,7,8,9,10}에만 도달 할 수 있습니다. // int first int int [] b = getArray (a, 3,100); Demoe.printarray (b); } // CASE : 배열이 초기화되었고 이제 요소 100을 첨자에 삽입 3 public static int [] getArray (int [] a, int index, int num) {int src_array_length = a.length; int [] b = new int [src_array_length+1]; for (int i = 0; i <a.length; i ++) {b [i] = a [i]; } a = b; // a를 사용하려면 다음 b // 다음 요소에서 시작하고 마지막 요소의 이전 요소를 마지막 요소를 마지막 요소로 복사하십시오. } // 잊지 말고 해당 배열 좌표에 삽입 할 요소를 삽입하십시오 [index] = num; 반환 a; }}자바에서 라이브러리 기능을 사용하여 구현할 수도 있습니다.
import java.util.arrays; Public Class HelloWorld {public static void main (String [] args) {// 스캐너 s = new Scanner (System.In); // system.out.println ( "숫자를 입력하십시오"); // int num = s.nextInt (); int [] a = {1,2,3,4,5}; int [] b = new int [a.length]; // 1, 소스 배열 // 2, 소스 배열을 시작할 위치 // 3, 대상 배열 // 4, 대상 배열을 시작할 위치 // 5, 여러 번 복사 //system.arraycopy(a, 0, b, 0, a.length); //demoe.printarray(B); // 스케일링 ---> 스케일링 두 배의 스케일링 // a = arrays.copyof (a, 2*a.length); //demoe.printarray(a); a = insertArray (a, 3, 100); // 인쇄 Array System.out.println (Arrays.toString (a)); } // 정수 배열의 POS 위치에 요소를 삽입하는 함수를 작성하여 public static int [] insertArray (int [] a, int pos, int value) {if (pos <0 || pos> a.length + 1) // 인덱스 첨자가 잘못되었고 소스 어레이가 직접 반환됩니다. // 요소를 넣고 용량을 먼저 확장 한 다음 A = Arrays.copyof (a, a.length+1)를 복사합니다. for (int i = a.length-1; i> pos; i-) {a [i] = a [i-1]; // 뒤로 이동} a [pos] = value; 반환 a; }}실행 결과 :
[1, 2, 3, 100, 4, 5]
요약
위는 Java Array 확장 인스턴스 코드에 대한이 기사의 모든 내용입니다. 모든 사람에게 도움이되기를 바랍니다. 단점이 있으면 메시지를 남겨 두십시오. 이 사이트를 지원해 주신 친구들에게 감사드립니다!