Heim > Java > javaLernprogramm > Hauptteil

Einführung in Arrays in Java

Susan Sarandon
Freigeben: 2024-10-09 10:11:02
Original
716 Leute haben es durchsucht

Introduction to Arrays in Java

프로그래밍에는 대규모 데이터 세트를 관리하고 조작하는 작업이 포함되는 경우가 많으므로 효율적이고 효과적인 데이터 구조가 중요합니다. 배열은 컴퓨터 과학의 기본 데이터 구조이며 동일한 유형의 고정 크기 시퀀스 요소를 저장하는 수단을 제공합니다. 이 블로그에서는 Java 배열의 정의, 구문, 작동 방법, 메모리 관리 등을 통해 Java 배열에 대해 심층적으로 살펴보겠습니다.

어레이가 필요한 이유는 무엇입니까?

Java에서 변수를 사용할 때 다음과 같이 각 변수를 개별적으로 선언하고 초기화할 수 있습니다.

java
int a = 19;
String name = "John Doe";
Nach dem Login kopieren

그러나 동일한 유형의 여러 값을 처리해야 하는 경우 이 접근 방식은 비효율적입니다. 예를 들어 여러 개의 롤 번호나 이름을 저장하려는 경우 각 값을 하드 코딩하는 것은 실용적이지 않습니다. 배열은 값 모음을 효율적으로 저장할 수 있어 유용합니다. 예를 들어 5개의 롤 번호를 저장해야 하는 경우 배열을 활용할 수 있습니다.

배열이란 무엇입니까?

배열은 기본적으로 동일한 유형의 데이터 항목 모음입니다. 배열은 객체뿐만 아니라 정수, 부동 소수점, 문자와 같은 기본 데이터 유형을 저장할 수 있습니다. 예:

int[] rollNumbers = new int[5];
String[] names = {"Alice", "Bob", "Charlie"};
Nach dem Login kopieren

배열 구문

Java에서 배열을 선언하는 구문은 간단합니다.

dataType[] arrayName = new dataType[size];
Nach dem Login kopieren

예를 들어 5개의 정수 배열을 생성하려면 다음을 수행하세요.

int[] rollNumbers = new int[5];
Nach dem Login kopieren

또는 한 줄로 배열을 선언하고 초기화할 수도 있습니다.

int[] rollNumbers = {23, 55, 9, 18, 45};
Nach dem Login kopieren

배열의 특성

동종 요소

배열에서 모든 요소는 동일한 유형이어야 합니다. 단일 배열 내에서 유형을 혼합할 수 없습니다. 예를 들면 다음과 같습니다.

int[] nums = {1, 2, "three"}; // Will cause a compile-time error
Nach dem Login kopieren

고정 크기

배열이 생성되면 크기가 고정됩니다. 크기를 확장하거나 축소할 수 없습니다. 이러한 제약으로 인해 보다 동적인 데이터 요구 사항을 충족하기 위해 ArrayList와 같은 다른 데이터 구조를 선택하게 되는 경우가 많습니다.

내부 메모리 관리

Java의 배열은 다음으로 구성됩니다.

  • 스택 메모리: 배열의 참조 변수를 저장합니다.
  • 힙 메모리: 실제 배열 객체와 해당 요소를 저장합니다.

배열을 선언하면 스택 메모리에 참조가 생성되고, 힙 메모리에 배열 객체가 저장됩니다.

메모리 할당

배열의 메모리 할당에는 두 가지 중요한 단계가 있습니다.

  1. 선언: 참조 변수가 생성되었지만 아무 곳도 가리키지 않습니다.
  2. 초기화: 참조 변수는 요소가 포함된 힙의 실제 배열 개체를 가리킵니다.

예:

int[] rollNumbers; // Declaration
rollNumbers = new int[5]; // Initialization
Nach dem Login kopieren

동적 메모리 할당

Java는 동적 메모리 할당을 수행합니다. 즉, 런타임 시 필요에 따라 메모리를 할당하므로 메모리 관리가 효율적입니다.

배열의 입력과 출력

입력 받기

사용자 입력으로 배열을 채우려면 콘솔에서 입력을 읽는 스캐너와 함께 루프를 사용할 수 있습니다.

Scanner scanner = new Scanner(System.in);
int[] arr = new int[5];
for (int i = 0; i < arr.length; i++) {
    System.out.print("Enter element " + (i + 1) + ": ");
    arr[i] = scanner.nextInt();
}
Nach dem Login kopieren

배열 인쇄

더 읽기 쉬운 출력을 위해 루프나 Arrays.toString() 유틸리티 메소드를 사용하여 배열을 인쇄할 수 있습니다.

for (int i = 0; i < arr.length; i++) {
    System.out.print(arr[i] + " ");
}
Nach dem Login kopieren

또는

System.out.println(Arrays.toString(arr));
Nach dem Login kopieren

다차원 배열

2차원 배열, 즉 행렬은 배열의 배열입니다. 2D 배열의 구문은 다음과 같습니다.

int[][] matrix = new int[3][3];
Nach dem Login kopieren

int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};
Nach dem Login kopieren

2D 배열에 요소를 동적으로 입력하려면 중첩 루프가 사용됩니다.

ArrayList: 동적 대안

Java의 배열은 크기가 고정되어 있어 컴파일 시 요소 수를 알 수 없으면 비효율성이 발생합니다. 이러한 제한은 Java 컬렉션 프레임워크의 일부인 ArrayList 클래스를 사용하여 극복할 수 있습니다.

ArrayList 사용

ArrayList 클래스는 동적 크기 조정을 제공합니다. ArrayList를 생성하는 구문은 다음과 같습니다.

ArrayList<Integer> numbers = new ArrayList<>();
Nach dem Login kopieren

요소를 동적으로 추가하고 조작할 수 있습니다.

numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println(numbers); // Output: [1, 2, 3]

numbers.set(1, 10); // Change element at index 1
System.out.println(numbers); // Output: [1, 10, 3]

numbers.remove(0); // Remove element at index 0
System.out.println(numbers); // Output: [10, 3]

boolean contains = numbers.contains(10); // Check if the list contains 10
System.out.println(contains); // Output: true
Nach dem Login kopieren

ArrayList의 내부 작업

내부적으로 ArrayList는 초기 고정 용량을 갖는 동적 배열을 사용합니다. 이 용량이 소진되면 더 큰 용량의 새 어레이가 생성되고 기존 요소가 복사됩니다. 이 프로세스를 통해 요소가 추가됨에 따라 ArrayList가 동적으로 커질 수 있습니다.

일반적인 어레이 작업

최대 요소 찾기

배열에서 최대 요소를 찾으려면 배열을 반복하고 가장 높은 값을 추적하세요.

int max = arr[0];
for (int i = 1; i < arr.length; i++) {
    if (arr[i] > max) {
        max = arr[i];
    }
}
System.out.println("Maximum value: " + max);
Nach dem Login kopieren

배열 반전

배열을 뒤집으려면 두 포인터 기술을 사용하세요.

public static void reverse(int[] arr) {
    int start = 0;
    int end = arr.length - 1;
    while (start < end) {
        int temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;
        start++;
        end--;
    }
}
Nach dem Login kopieren

Calling the reverse function:

int[] arr = {1, 2, 3, 4, 5};
reverse(arr);
System.out.println(Arrays.toString(arr)); // Output: [5, 4, 3, 2, 1]
Nach dem Login kopieren

Conclusion

Arrays are a critical data structure in Java, enabling the storage and manipulation of data sets efficiently. While fixed in size, arrays are powerful and versatile when dealing with homogeneous data types. For dynamic data needs, ArrayList provides additional flexibility, allowing arbitrary growth in size. Understanding these structures and their operations lays the groundwork for more advanced programming and data management. Moreover, practicing array operations and understanding their underlying memory management helps in writing more efficient and optimized code.

Das obige ist der detaillierte Inhalt vonEinführung in Arrays in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!