java array declare
이 심층 자습서에서는 간단한 코드 예제를 사용하여 Java에서 값을 사용하여 새 배열을 선언, 생성 및 초기화하는 다양한 방법을 설명합니다.
이전 자습서에서는이 자습서 시리즈에서 자세히 배울 배열과 관련된 다양한 개념과 함께 Java 배열의 기본 사항에 대해 논의했습니다.
배열을 사용하는 첫 번째 단계는 배열을 만드는 것입니다. 배열에 저장할 요소 유형과 요소 수를 알고 있어야합니다. 배열을 선언 한 후에는 몇 가지 초기 값을 제공하여 초기화 할 수 있으며이를 수행하는 다양한 방법이 있습니다.
따라서이 자습서에서는 다른 개념으로 이동하기 전에 배열을 만들고 초기화하는 데 중점을 둘 것입니다.
학습 내용 :
Java에서 배열을 선언하는 방법?
Java에서 1 차원 배열은 다음 방법 중 하나로 선언됩니다.
data_type() array_name; {or} data_type array_name(); {or} data_type ()array_name;
여기서‘data_type’은 어레이가 보유 할 데이터 유형을 지정합니다. 'data_type'은 기본 데이터 유형이거나 파생 된 유형일 수 있습니다.
예를 들어 배열 Myarray 정수 유형은 다음과 같이 선언됩니다.
int () myarray;
또는
int () myarray;
또는
int myarray ();
이것은 배열 myarray가 int 데이터 유형의 요소를 보유한다는 것을 의미합니다.
Java의 배열은 동적으로 할당되므로 선언으로 배열의 차원이나 크기를 지정하지 않습니다. 위의 선언은 컴파일러에게 정수 유형 값을 저장할 int 유형의 배열 변수 'myarray'가 있음을 알려줍니다.
컴파일러는 배열에 저장된 크기 나 실제 값을 알지 못합니다. 배열을 초기화 한 후에 만 알 수 있습니다.
Java 배열 인스턴스화 및 초기화
이전 섹션에서 이미 배열을 선언했습니다. 그러나 이것은 참조 일뿐입니다. 위에서 선언 한 배열 변수를 사용하려면 인스턴스화 한 다음 값을 제공해야합니다. 어레이는 'new'를 사용하여 인스턴스화됩니다.
인스턴스화의 일반적인 구문은 다음과 같습니다.
array_name = new data_type (size);
위 명령문에서 array_name은 인스턴스화되는 배열의 이름입니다.
data_type=> type of elements the array is going to store size=> the number of elements that will be stored in array
따라서 배열과 함께 new를 사용할 때 실제로 데이터 유형과 요소 수로 배열을 할당합니다.
따라서 위에서 선언 한 배열 myarray는 다음과 같이 인스턴스화 할 수 있습니다.
myarray = new int(10)
따라서 Java에서 배열을 생성하려면 아래와 같이 두 단계가 필요합니다.
int() myarray; //declaration myarray = new int(10); //instantiation
배열이 생성되면 다음과 같은 값으로 초기화 할 수 있습니다.
myarray(0) = 1; myarray(1) = 3; ….and so on until all elements are initialized.
위의 대괄호 안에있는 표현식을 배열의 인덱스라고합니다. 배열의 인덱스는 요소의 실제 값에 액세스하는 데 사용됩니다. 즉, 10 개의 int 요소로 구성된 위의 배열 myarray는 0에서 9까지 번호가 매겨진 인덱스를 갖게됩니다. 인덱스를 다음과 같이 지정하여 특정 위치에서 배열의 요소에 액세스 할 수 있습니다. 위.
Java에서 배열을 함수에 전달하는 방법
배열 인덱스는 항상 0부터 시작합니다. 또는 나중에 살펴볼 루프를 사용하여 초기화를 수행 할 수도 있습니다.
또한 아래와 같이 선언 중에 배열 리터럴을 사용하고 배열을 초기화 할 수 있습니다.
int() myarray = {1,3,5,7};
위의 문장에서 배열의 길이는 요소의 수에 의해 결정됩니다. 또한 보시다시피 'new'를 사용할 필요가 없습니다. 더 중요한 것은 배열의 선언, 인스턴스화 및 초기화가 단일 명령문에서 수행된다는 것입니다.
다음은 배열을 선언하고 초기화하는 간단한 프로그래밍 예제입니다.
public class Main { public static void main(String() args) { int() myarray; //declaration myarray = new int(5); //instantiation myarray(0) = 10; //initialization System.out.println('myarray(0) = ' + myarray(0)); //accessing and printing array elements System.out.println('myarray(1) = ' + myarray(1)); int () oddArray = {1,3,5,7}; //initialization with array literal System.out.println('oddArray(0) = ' + oddArray(0)); System.out.println('oddArray(1) = ' + oddArray(1)); System.out.println('oddArray(2) = ' + oddArray(2)); System.out.println('oddArray(3) = ' + oddArray(3)); } }
산출:
이 프로그램은 배열 선언과 그 인스턴스화 및 초기화를 보여주었습니다. 우리는 단지 o를 초기화 했으므로일myarray의 값, 인쇄되는 다른 값 myarray (1)은 기본값 즉 0을 갖습니다.
두 번째 배열은 배열 리터럴 변수를 보여줍니다. 배열을 초기화하지 않더라도 Java 컴파일러는 오류를 제공하지 않습니다. 일반적으로 배열이 초기화되지 않은 경우 컴파일러는 요소의 데이터 유형에 따라 배열의 각 요소에 기본값을 할당합니다.
다음 프로그램을 사용하여 이러한 기본값을 시연합니다.
class Main { public static void main(String() args) { System.out.println('=======Default Values======'); System.out.print('String Array:'); String() array_str = new String(5); //declaration and instantiation for (String str : array_str) //assumes default values System.out.print(str + ' '); System.out.println('
'); System.out.print('Integer array:'); //array only instantiated not initialized int() array_num = new int(5); for (intnum : array_num) System.out.print(num + ' '); System.out.println('
'); System.out.print('Double array:'); //array only instantiated not initialized doublearray_double() = new double(5); for (double dnum : array_double) System.out.print(dnum + ' '); System.out.println('
'); System.out.print('Boolean array:'); //array only instantiated not initialized booleanarray_bool() = new boolean(5); for (booleanbval : array_bool) System.out.print(bval + ' '); System.out.println('
'); } }
산출:
위의 프로그램에서 방금 선언하고 인스턴스화했습니다. 우리는 그것들을 어떤 값으로도 초기화하지 않았습니다. 따라서 이러한 배열의 내용을 표시 할 때 배열의 데이터 유형에 따라 요소의 기본값이 다릅니다.
위에서 볼 수 있듯이 string 형 배열의 기본값은 'null', 정수 값은 0, double 값은 기본값 0.0입니다. 부울 값은 기본값이 false로 설정되어 있습니다.
배열 요소 초기화 및 액세스
# 1) For 루프 사용
위에서 작성한 프로그램은 초기화를 위해 배열 리터럴을 사용하고 다른 배열 요소는 별도로 초기화됩니다. for 루프를 사용하여 배열 요소를 초기화 할 수도 있습니다.
아래 프로그램에서 for 루프를 사용하여 초기화하기 위해 배열 리터럴을 사용하여 위 배열을 변환했습니다.
public class Main { public static void main(String() args) { int() oddArray; //declaration oddArray = new int(5); //instantiation for(int i=0;i<5;i++){ oddArray(i) = i+1; //initialization using for loop } System.out.println('oddArray(0) = ' + oddArray(0)); System.out.println('oddArray(1) = ' + oddArray(1)); System.out.println('oddArray(2) = ' + oddArray(2)); System.out.println('oddArray(3) = ' + oddArray(3)); System.out.println('oddArray(4) = ' + oddArray(4)); } }
산출:
여기에서 볼 수 있듯이 for 루프를 사용하여 배열을 초기화했습니다. 배열의 각 요소 'i'는 값 = i + 1로 초기화됩니다. 위의 방법을 사용하여 배열을 초기화하는 것 외에도 'java.util'패키지의 'Arrays'클래스의 일부 방법을 사용하여 배열의 초기 값을 제공 할 수 있습니다.
아래에서 이러한 방법 중 일부에 대해 설명합니다.
# 2) Arrays.fill () 사용
'Arrays'클래스의 fill () 메서드를 사용하여 배열을 초기화 할 수 있습니다. 이 메서드를 사용하여 배열을 초기화하면 배열은 모든 인덱스에서 동일한 값으로 채워집니다.
다음은 프로그래밍 예제입니다.
import java.util.*; public class Main { public static void main(String() args) { int() oddArray; oddArray = new int(5); //fill the array with value 30 Arrays.fill(oddArray, 30); System.out.println('Array Elements initialised with Arrays.fill:'); for(int i=0;i<5;i++) System.out.println('oddArray(' + i +') = ' + oddArray(i)); } }
산출:
위의 프로그램에서는 배열에 채워질 값으로 30을 제공했습니다. 출력은 배열의 모든 요소 값이 30임을 보여줍니다.
# 3) Arrays.copyOf () 사용
‘copyOf ()’메서드를 사용하여 소스 배열을 사용한 다음 해당 값을 새 배열에 복사합니다. 복사 할 값의 수를 지정할 수 있으며 배열의 나머지 요소는 기본값을 갖게됩니다.
다음 프로그램을 확인하십시오.
import java.util.*; public class Main { public static void main(String() args) { int evenArray() = { 2,4,6,8,10 }; //copy contents of evenArray to copyof_Array int() copyof_Array = Arrays.copyOf(evenArray,5); System.out.println('Array Elements initialised with Arrays.copyOf:'); //print the array elements for(int i=0;i<5;i++) System.out.println('copyof_Array(' + i +') = ' + copyof_Array(i)); } }
산출:
이 프로그램에서는 'evenArray'라는 소스 배열을 사용합니다. copyOf 메서드를 사용하여 evenArray의 모든 요소를 새 배열에 복사했습니다. 출력에서 evenArray와 동일한 새 배열의 내용을 표시합니다.
위의 두 가지 메서드 외에도 배열을 초기화하는 데 사용할 수있는 Arrays 클래스의 setAll () 메서드와 ArrayUtils의 clone () 메서드와 같은 메서드가 더 많이 있다는 것을 방금 논의했습니다. 이 튜토리얼 시리즈의 후반부에서 각 주제에서 이러한 방법을 다룰 것입니다.
자주 묻는 질문
Q # 1) 크기없이 배열을 선언 할 수 있습니까?
대답: 아니요. 크기를 지정하지 않고 배열을 선언 할 수 없습니다. 그렇게하려면 본질적으로 동적 인 ArrayList를 사용할 수 있습니다.
Q # 2) Java에서 배열 크기가 고정되어 있습니까?
대답: 예. 배열은 Java에서 정적이며 지정된 크기로 배열을 선언합니다. 이 크기를 지정하면 다시 변경할 수 없습니다.
Q # 3) 어레이를 초기화하는 동안 항상 new를 사용해야합니까?
대답: 아니요. 배열은 new를 사용하거나 중괄호로 묶인 쉼표로 구분 된 값을 할당하여 초기화 할 수 있습니다.
따라서 아래와 같이 배열 리터럴을 사용하여 배열을 초기화 할 때. 새로운 것을 사용할 필요가 없습니다.
int() myarray = {1,2,3,4,5};
제공된 요소의 수에 따라 배열의 크기가 결정됩니다.
Q # 4) Java Array를 직렬화 할 수 있습니까?
대답: 예. 내부적으로 Java의 Array는 직렬화 가능한 인터페이스를 구현합니다.
Q # 5) Array Primitive 데이터 유형입니까?
대답: 사실, 배열은 전혀 데이터 유형이 아닙니다. 배열은 인접한 메모리 위치에 특정 데이터 유형의 요소를 보유하는 컨테이너 객체입니다.
결론
이것은 Java에서 배열의 생성 및 초기화를 요약합니다. 배열이 생성되고 일부 값으로 초기화되면이를 인쇄해야합니다. 배열 요소를 인쇄하려면 전체 배열을 탐색하고 요소를 인쇄해야합니다.
다음 튜토리얼에서 배열 요소를 인쇄하는 몇 가지 방법을 살펴 보겠습니다.