Java의 배열: 알아야 할 사항은 무엇입니까?

게시 됨: 2020-11-30

목차

소개

Java의 원시 데이터 유형을 살펴본 후 많은 사람들이 디스크에 하나 이상의 항목을 순차적으로 저장할 수 있는지에 대한 질문을 하게 될 것입니다. 자바의 배열은 우리 쿼리에 대한 답이 될 것입니다.

배열은 동일한 데이터 유형의 항목을 순차적으로 저장하는 데이터 구조입니다. 배열은 코드의 중복을 줄이고 간단하게 만듭니다. 상당히 많은 수의 값, 예를 들어 50개의 값을 저장하려는 경우 각 값을 변수에 할당하는 것은 코드의 단순성과 모순됩니다.

배열은 이 문제를 극복합니다. 이러한 모든 값을 단일 배열에 할당할 수 있지만 배열은 동일한 데이터 유형의 값만 저장할 수 있다는 점을 기억하십시오.

시작하자!

선언 및 초기화

배열을 사용하려면 배열을 선언해야 하고 배열에 저장하려는 변수의 데이터 유형을 지정해야 합니다. 모든 프로그래밍 언어와 유사하게 java에도 선언을 위해 따라야 하는 구문이 있습니다.

정수 [] 배열; //유형1

정수 배열[]; //유형2

위의 코드 조각과 같이 두 가지 방법으로 배열을 선언할 수 있습니다. "Type2"는 C/C++에서 차용한 배열을 선언하는 전통적인 방법입니다. 배열 선언이 끝나면 새 배열을 생성해야 하며 new 키워드를 사용하여 이를 수행할 수 있습니다.

그리고 배열 생성 구문은 “data_type[] array = new array[array_length]”와 같습니다. 생성할 때 배열의 길이를 지정해야 하며 생성 후에는 크기를 늘릴 수 없습니다.

길이를 지정하여 배열을 만든 후에는 해당 변수에 빈 배열을 할당하기만 하면 나중에 값을 넣을 수 있습니다. 이에 대한 코드를 살펴보겠습니다.

int [] 배열 = 새로운 int [ 10 ]; //선언과

//새로운 배열 생성

//값 할당

배열 [ 0 ] = 1 ;

배열 [ 1 ] = 5 ;

배열 [ 8 ] = 9 ;

//방법 2

정수 [] 배열 = { 1 , 2 , 3 , 4 , 5 };

시스템 . 밖으로 . 인쇄( 정수 [ 0 ]);

처음에 모든 위치는 정수 배열의 0으로 채워지며 대괄호 안에 인덱스를 언급하여 해당 값을 값으로 재정의할 수 있습니다. 위의 스니펫에서 "메서드 2"는 배열을 만드는 또 다른 방법입니다.

배열에 대한 루핑

배열을 반복하기 위해 for 루프나 while 루프를 사용할 수 있습니다. 여기서 각 반복마다 인덱스가 증가합니다. 배열의 길이보다 큰 인덱스를 가진 요소에 액세스하면 예외가 발생한다는 것을 기억하십시오.

정수 [] 배열 = { 1 , 2 , 3 , 4 , 5 };

( int i = 0 ; i < 5 ;i ++ ){

시스템 . 밖으로 . 인쇄(배열[i] + " " );

}

위의 코드 조각은 "1 2 3 4 5 "를 출력으로 인쇄합니다.

루프를 반복하기 위한 "for-each 루프"라는 또 다른 흥미로운 루프가 있습니다.

float [] 배열 = { 1.2f , 2.3f , 3.4f , 4.5f , 5.6f };

for ( float f : 배열){

시스템 . 밖으로 . 인쇄(f + " " );

}

위의 코드 조각은 각 반복에서 변수 float 값이 배열의 다음 항목으로 변경되는 for-each 루프의 구현을 보여줍니다. 이 구현에는 인덱스 변수가 필요하지 않습니다.

확인: Java의 완전한 ArrayList: 알아야 할 사항

사전 정의된 방법

Java의 Arrays 클래스에는 모든 기본 데이터 유형으로 일반화되는 사전 정의된 많은 메소드가 있습니다. 예를 들어 모든 정수가 포함된 배열과 모든 부동 소수점이 포함된 배열을 정렬하려는 경우 두 경우 모두 동일한 방법을 사용할 수 있습니다.

미리 정의된 몇 가지 배열 방법을 살펴보겠습니다.

  • 종류()

이 메소드는 이미 논의된 바와 같이 주어진 배열을 오름차순으로 정렬하고 정렬된 배열을 업데이트합니다. 이 메소드는 Java의 모든 기본 데이터 유형에 대해 오버로드됩니다. 이 public 메서드는 void 반환 유형이므로 아무 것도 반환하지 않습니다.

Arrays.sort(array_name)는 따라야 할 구문입니다.

float [] 배열 = { 2.2f , 1.3f , 5.4f , 3.5f , 7.6f };

배열 . 정렬(배열);

for ( float f : 배열){

시스템 . 밖으로 . 인쇄(f + " " );

}

위의 스니펫은 예상대로 "1.3 2.2 3.5 5.4 7.6"을 인쇄합니다.

  • 채우다()

이 메서드는 함수 호출에서 전달한 변수로 배열을 채웁니다. 이 방법은 배열을 반복하고 해당 위치에 값을 할당하는 순진한 구현을 대체합니다.

Arrays.fill(array_name, value)은 따라야 할 구문입니다.

float [] 배열 = { 2.2f , 1.3f , 5.4f , 3.5f , 7.6f };

배열 . 채우기(배열, 9.8f );

for ( float f : 배열){

시스템 . 밖으로 . 인쇄(f + " " );

}

위의 스니펫은 배열의 모든 항목을 9.8로 바꿉니다.

  • 같음()

이 메서드는 두 개의 배열을 매개변수로 예상하고 배열 1의 모든 요소가 배열 2의 모든 요소와 같으면 true를 반환합니다. 이 메서드는 두 배열의 길이가 다르거나 요소의 순서가 다른 경우 false를 반환한다는 것을 기억하십시오. .

Arrays.equals(array_1, array_2)는 따라야 할 구문입니다.

float [] 배열1 = { 2.2f , 1.3f , 5.4f , 3.5f , 7.6f };

float [] array2 = { 2.2f , 1.3f , 5.4f , 3.5f , 7.6f };

float [] array3 = { 2.2f , 1.3f , 3.5f , 5.4f , 7.6f };

시스템 . 밖으로 . println( 배열 . equals(array1,array2)); //라인1

시스템 . 밖으로 . println( 배열 . equals(array1,array3)); //라인2

위의 스니펫은 1행에 True, 2행에 False를 인쇄합니다.

Java의 다양한 배열 메서드에 대한 자세한 내용은 해당 설명서 를 참조 하십시오.

메서드의 배열 액세스

함수에서 사용할 수 없다면 배열은 아무 소용이 없을 것입니다. 그러나 Java는 결코 실망시키지 않습니다. 배열을 전달하고 배열을 반환하고 Java 함수에서 배열을 사용할 수 있습니다.

그들을 통해 가자.

Java 함수에 배열을 전달하려면 함수 선언에서 배열의 데이터 유형을 지정해야 합니다. 이것은 기본 데이터 유형을 함수에 전달하는 것과 거의 유사합니다. 마찬가지로 배열을 반환할 때 배열을 반환 유형으로 사용하여 배열을 선언해야 합니다.

공개 정적 float [] sorted( float [] 배열){

배열 . 정렬(배열);

반환 배열;

}

공개 정적 무효 메인( 문자열 인수[]){

float [] 배열1 = { 2.2f , 1.3f , 5.4f , 3.5f , 7.6f };

float [] array2 = 정렬(배열1);

for ( float f : array2)

시스템 . 밖으로 . 인쇄(f + " " );

}

위의 스니펫은 예상대로 "1.3 2.2 3.5 5.4 7.6"을 인쇄합니다.

읽기: MATLAB 데이터 유형: 알아야 할 모든 것

결론

이제 Java의 배열에 대해 알게 되었습니다. 배열의 초기화 및 선언에 대해 이해했습니다. 배열을 반복하는 다양한 방법을 탐색했습니다. 미리 정의된 몇 가지 배열 메서드를 살펴보고 메서드에서 배열에 액세스했습니다. 당신은 자바의 유용한 데이터 구조로 가득 차 있습니다. 지금 그것을 사용하십시오!

Java, OOP 및 전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9 + 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

미래의 직업을 위한 준비

업계에서 신뢰할 수 있는 학습 - 업계에서 인정하는 인증.
더 알아보기