∮explotación≒ 개발

java 배열에 대해서 알아보자 배열이란 무엇인가?

TipoAzul 2023. 2. 15.
반응형

 

배열

 배열 고정 된 수의 단일 유형 값을 보유하는 컨테이너 객체입니다.

배열의 길이는 배열이 생성 될 때 설정됩니다. 생성 후 길이가 고정됩니다.

"Hello World!"의 주요 방법에서 이미 배열의 예를  설명합니다.

8 개의 요소 배열.

배열의 각 항목을 요소, 각 요소는 숫자로 액세스됩니다 인덱스.

앞의 그림에서 볼 수 있듯이 번호 매기기는 0으로 시작합니다. 예를 들어, 6 번째 요소는 인덱스 5에서 액세스됩니다.

다음 프로그램, ArrayDemo, 정수 배열을 작성하고 배열에 일부 값을 입력 한 다음 각 값을 표준 출력에 인쇄합니다.

class ArrayDemo {
    public static void main(String[] args) {
        // declares an array of integers
        int[] anArray;

        // allocates memory for 10 integers
        anArray = new int[10];

        // initialize first element
        anArray[0] = 100;
        // initialize second element
        anArray[1] = 200;
        // and so forth
        anArray[2] = 300;
        anArray[3] = 400;
        anArray[4] = 500;
        anArray[5] = 600;
        anArray[6] = 700;
        anArray[7] = 800;
        anArray[8] = 900;
        anArray[9] = 1000;

        System.out.println("Element at index 0: "
                           + anArray[0]);
        System.out.println("Element at index 1: "
                           + anArray[1]);
        System.out.println("Element at index 2: "
                           + anArray[2]);
        System.out.println("Element at index 3: "
                           + anArray[3]);
        System.out.println("Element at index 4: "
                           + anArray[4]);
        System.out.println("Element at index 5: "
                           + anArray[5]);
        System.out.println("Element at index 6: "
                           + anArray[6]);
        System.out.println("Element at index 7: "
                           + anArray[7]);
        System.out.println("Element at index 8: "
                           + anArray[8]);
        System.out.println("Element at index 9: "
                           + anArray[9]);
    }
}
 

이 프로그램의 결과는 다음과 같습니다:

Element at index 0: 100
Element at index 1: 200
Element at index 2: 300
Element at index 3: 400
Element at index 4: 500
Element at index 5: 600
Element at index 6: 700
Element at index 7: 800
Element at index 8: 900
Element at index 9: 1000
 

실제 프로그래밍 상황에서는 지원되는 루핑 구성 중 하나를 사용하여 배열의 각 요소를 반복합니다, 앞의 예에서와 같이 각 줄을 개별적으로 쓰지 말고. 그러나   이 예제는 배열 구문을 명확하게 보여줍니다.

 

 

 

 

 

배열을 참조하기 위해 변수 선언

 

 

앞의 프로그램은 (이라는 이름의 배열을 선언합니다 anArray다음 코드 줄이있는 ):

// declares an array of integers
int[] anArray;
 

다른 유형의 변수에 대한 선언과 마찬가지로 배열 선언에는 배열 유형과 배열 이름의 두 가지 구성 요소가 있습니다. 배열 유형은 다음과 같이 작성됩니다 type[], 어디서 type 포함 된 요소의 데이터 유형입니다. 괄호는이 변수가 배열을 보유 함을 나타내는 특수 기호입니다. 배열의 크기는 ( 유형의 일부가 아니므로 괄호가 비어 있습니다 ). 배열 이름은 다음에 설명 된 규칙과 규칙을 따르는 경우 원하는 것이 될 수 있습니다 수업 부분. 다른 유형의 변수와 마찬가지로 선언은 실제로 배열을 만들지 않습니다. 이 변수가 지정된 유형의 배열을 보유 할 것임을 컴파일러에 알려줍니다.

마찬가지로 다른 유형의 배열을 선언 할 수 있습니다:

byte[] anArrayOfBytes;
short[] anArrayOfShorts;
long[] anArrayOfLongs;
float[] anArrayOfFloats;
double[] anArrayOfDoubles;
boolean[] anArrayOfBooleans;
char[] anArrayOfChars;
String[] anArrayOfStrings;
 

배열 이름 뒤에 대괄호를 배치 할 수도 있습니다:

// this form is discouraged
float anArrayOfFloats[];
 

그러나 규칙은이 형식을 권장하지 않습니다. 괄호는 배열 유형을 식별하며 유형 지정과 함께 나타나야합니다.

 

 

배열 생성, 초기화 및 액세스

 

배열을 만드는 한 가지 방법은 new

다음 진술 ArrayDemo 프로그램은 10 개의 정수 요소에 충분한 메모리를 가진 배열을 할당하고 배열을 anArray 변수.

// create an array of integers
anArray = new int[10];
 

이 문장이 없으면 컴파일러는 다음과 같은 오류를 인쇄하고 컴파일이 실패합니다:

ArrayDemo.java:4: Variable anArray may not have been initialized.
 

다음 몇 줄은 배열의 각 요소에 값을 할당합니다:

anArray[0] = 100; // initialize first element
anArray[1] = 200; // initialize second element
anArray[2] = 300; // and so forth
 

각 배열 요소는 숫자 인덱스로 액세스합니다:

System.out.println("Element 1 at index 0: " + anArray[0]);
System.out.println("Element 2 at index 1: " + anArray[1]);
System.out.println("Element 3 at index 2: " + anArray[2]);
 

또는 바로 가기 구문을 사용하여 배열을 만들고 초기화 할 수 있습니다:

int[] anArray = {
    100, 200, 300,
    400, 500, 600,
    700, 800, 900, 1000
};
 

여기서 배열의 길이는 중괄호 사이에 제공되고 쉼표로 구분 된 값의 수에 의해 결정됩니다.

다음과 같은 두 개 이상의 브래킷 세트를 사용하여 다차원 배열 (이라고도하는 배열 배열 배열 )을

선언 할 수도 있습니다 String[][] 이름. 따라서 각 요소는 해당 수의 인덱스 값으로 액세스해야합니다.

Java 프로그래밍 언어에서 다차원 배열은 구성 요소 자체가 배열 인 배열입니다.

이것은 C 또는 Fortran의 배열과 다릅니다.

그 결과 다음과 같이 행의 길이가 달라질 수 있습니다 MultiDimArrayDemo 프로그램:

class MultiDimArrayDemo {
    public static void main(String[] args) {
        String[][] names = {
            {"Mr. ", "Mrs. ", "Ms. "},
            {"Smith", "Jones"}
        };
        // Mr. Smith
        System.out.println(names[0][0] + names[1][0]);
        // Ms. Jones
        System.out.println(names[0][2] + names[1][1]);
    }
}
 

이 프로그램의 결과는 다음과 같습니다:

Mr. Smith
Ms. Jones
 

마지막으로 내장 length 배열의 크기를 결정하는 속성입니다. 다음 코드는 배열의 크기를 표준 출력으로 인쇄합니다:

System.out.println(anArray.length);
 

 

 

 

배열복사

 

 

 

한 배열에서 다른 배열로 데이터를 효율적으로 복사하는 데 사용할 수있는 방법:

public static void arraycopy(Object src, int srcPos,
                             Object dest, int destPos, int length)
 

 Object arguments는 복사 할 배열과 복사 할 배열을 지정합니다. 세 int arguments는 소스 배열의 시작 위치, 대상 배열의 시작 위치 및 복사 할 배열 요소의 수를 지정합니다.

다음 프로그램, ArrayCopyDemo, 배열을 선언합니다 String 요소. 그것은 System.arraycopy() 배열 구성 요소의 하위 시퀀스를 두 번째 배열로 복사하는 방법:

class ArrayCopyDemo {
    public static void main(String[] args) {
        String[] copyFrom = {
            "Affogato", "Americano", "Cappuccino", "Corretto", "Cortado",
            "Doppio", "Espresso", "Frappucino", "Freddo", "Lungo", "Macchiato",
            "Marocchino", "Ristretto" };

        String[] copyTo = new String[7];
        System.arraycopy(copyFrom, 2, copyTo, 0, 7);
        for (String coffee : copyTo) {
            System.out.print(coffee + " ");
        }
    }
}
 

이 프로그램의 결과는 다음과 같습니다:

Cappuccino Corretto Cortado Doppio Espresso Frappucino Freddo
 

 

 

배열조작

 

 

배열은 프로그래밍에 사용되는 강력하고 유용한 개념입니다. Java SE는 배열과 관련된 가장 일반적인 조작을 수행하는 방법을 제공합니다. 예를 들어 ArrayCopyDemo 예는 arraycopy() 의 방법 System 소스 배열의 요소를 수동으로 반복하여 각각을 대상 배열에 배치하는 대신 클래스. 이것은 무대 뒤에서 수행되므로 개발자는 한 줄의 코드 만 사용하여 메소드를 호출 할 수 있습니다.

편의를 위해 Java SE는 배열 조작 ( 공통 작업을 수행하기위한 몇 가지 방법을 제공합니다 java.util.Arrays 수업. 예를 들어, 이전 예제는 java.util.Arrays 의 방법 java.util.Arrays 수업에서 볼 수 있듯이 ArrayCopyOfDemo 예. 차이점은 java.util.Arrays 메소드는 메소드에 의해 대상 배열이 리턴되므로 메소드를 호출하기 전에 대상 배열을 작성할 필요가 없습니다:

class ArrayCopyOfDemo {
    public static void main(String[] args) {
        String[] copyFrom = {
            "Affogato", "Americano", "Cappuccino", "Corretto", "Cortado",
            "Doppio", "Espresso", "Frappucino", "Freddo", "Lungo", "Macchiato",
            "Marocchino", "Ristretto" };

        String[] copyTo = java.util.Arrays.copyOfRange(copyFrom, 2, 9);
        for (String coffee : copyTo) {
            System.out.print(coffee + " ");
        }
    }
}
 

보시다시피이 프로그램의 출력은 동일하지만 코드 줄이 더 적습니다. 의 두 번째 매개 변수는 java.util.Arrays 메소드는 독점적으로 복사 할 범위의 초기 인덱스이고 세 번째 매개 변수는 독점적으로 복사 할 범위의 최종 인덱스입니다. 이 예에서 복사 할 범위에는 문자열이 포함 된 인덱스 9 (의 배열 요소가 포함되지 않습니다 Lungo).

다음의 방법으로 제공되는 다른 유용한 작업 java.util.Arrays 수업은 다음과 같습니다:

  • (에 배치 된 인덱스를 얻기 위해 특정 값에 대한 배열 검색 binarySearch() 방법 ).
  • (이 같은지 여부를 결정하기 위해 두 배열을 비교 equals() 방법 ).
  • 각 인덱스 (에 특정 값을 배치하기 위해 배열 채우기 fill() 방법 ).
  • 배열을 오름차순으로 정렬합니다. 이것은 다음을 사용하여 순차적으로 수행 할 수 있습니다 sort() 방법을 사용하거나 동시에 parallelSort() Java SE 8에 도입 된 방법. 멀티 프로세서 시스템에서 큰 배열의 병렬 정렬은 순차 배열 정렬보다 빠릅니다.
  • 배열을 소스 (으로 사용하는 스트림 만들기 stream() 방법 ). 예를 들어, 다음 문장은 copyTo 이전 예제와 같은 방식으로 배열하십시오:
java.util.Arrays.stream(copyTo).map(coffee -> coffee + " ").forEach(System.out::print);
 

스트림에 대한 자세한 내용은 집계 작업을 참조하십시오.

  • 배열을 문자열로 변환합니다. 그만큼 toString() 메소드는 배열의 각 요소를 문자열로 변환하고 쉼표로 구분 한 다음 괄호로 둘러 쌉니다. 예를 들어, 다음 명령문은 copyTo 배열을 문자열에 인쇄하여 인쇄합니다:
System.out.println(java.util.Arrays.toString(copyTo));
 

이 진술은 다음을 인쇄합니다:

[Cappuccino, Corretto, Cortado, Doppio, Espresso, Frappucino, Freddo]
 

 

 

포장 변수 및 배역

 

 

Java 프로그래밍 언어는 용어의 일부로 "필드"와 "변수"를 모두 사용합니다. 인스턴스 변수 ( 비 정적 필드 )은 클래스의 각 인스턴스에 고유합니다. 클래스 변수 ( 정적 필드 )은 정적 수정 자로 선언 된 필드입니다. 클래스가 인스턴스화 된 횟수에 관계없이 클래스 변수의 사본이 정확히 하나 있습니다. 로컬 변수는 메소드 내에 임시 상태를 저장합니다. 매개 변수는 메소드에 추가 정보를 제공하는 변수입니다. 로컬 변수와 매개 변수 모두 항상 "필드"(가 아닌 "변수")로 분류됩니다. 필드 나 변수의 이름을 지정할 때 ( 또는 )을 따라야하는 규칙과 규칙이 있습니다.

8 가지 기본 데이터 유형은 다음과 같습니다: byte, short, int, long, float, double, boolean, char. 그만큼 java.lang.String 클래스는 문자열을 나타냅니다. 컴파일러는 위 유형의 필드에 대해 합리적인 기본값을 지정합니다. 로컬 변수의 경우 기본값이 지정되지 않습니다.

리터럴은 고정 값의 소스 코드 표현입니다. 배열은 고정 된 수의 단일 유형 값을 보유하는 컨테이너 객체입니다. 배열의 길이는 배열이 생성 될 때 설정됩니다. 생성 후 길이가 고정됩니다.

 

 

 

[java] 연산자

연산자 연산자는 하나, 둘 또는 세 개의 피연산자에서 특정 작업을 수행 한 다음 결과를 반환하는 특수 기호입니다. Java 프로그래밍 언어의 연산자를 탐색 할 때 어떤 연산자가 우선 순위가 가장

tipoazul.tistory.com

 

 

 

 

홈으로
홈으로

반응형

댓글