산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java 배열 마스터하기: 효율적인 데이터 처리를 위한 종합 가이드

Java는 배열이라는 데이터 구조를 제공하며, 이는 같은 타입의 요소들을 고정된 크기의 순차적 컬렉션으로 저장합니다. 배열은 데이터 컬렉션을 저장하는 데 사용되지만, 같은 타입의 변수 컬렉션으로 생각하는 것이 더 유용합니다.

number0, number1, ..., number99 같은 개별 변수들을 선언하는 대신, numbers 같은 하나의 배열 변수를 선언하고 numbers[0], numbers[1], ..., numbers[99]로 개별 변수들을 표현합니다.

이 튜토리얼에서는 배열 변수 선언, 배열 생성, 인덱스 변수를 사용한 배열 처리 방법을 소개합니다.

배열 변수 선언

프로그램에서 배열을 사용하려면 배열을 참조할 변수를 선언하고, 그 변수가 참조할 수 있는 배열 타입을 지정해야 합니다. 배열 변수 선언 문법은 다음과 같습니다:

문법

dataType[] arrayRefVar; // 권장 방식
또는
dataType arrayRefVar[]; // 작동하지만 권장하지 않음

참고 - dataType[] arrayRefVar 스타일이 권장됩니다. dataType arrayRefVar[] 스타일은 C/C++ 언어에서 유래했으며 C/C++ 프로그래머들을 위해 Java에 채택되었습니다.

예제

다음 코드 조각들은 이 문법의 예들입니다:

double[] myList; // 권장 방식
또는
double myList[]; // 작동하지만 권장하지 않음

배열 생성

new 연산자를 사용하여 다음 문법으로 배열을 생성할 수 있습니다:

문법

arrayRefVar = new dataType[arraySize];

위 문장은 두 가지 일을 합니다:

배열 변수 선언, 배열 생성, 배열 참조를 변수에 할당을 한 문장으로 결합할 수 있습니다:

dataType[] arrayRefVar = new dataType[arraySize];

또는 다음과 같이 배열을 생성할 수도 있습니다:

dataType[] arrayRefVar = {value0, value1, ..., valuek};

배열 요소들은 인덱스를 통해 접근합니다. 배열 인덱스는 0부터 시작하며, 0부터 arrayRefVar.length-1까지입니다.

예제

다음 문장은 배열 변수 myList를 선언하고, double 타입 10개 요소의 배열을 생성하여 그 참조를 myList에 할당합니다:

double[] myList = new double[10];

다음 그림은 배열 myList를 나타냅니다. 여기서 myList는 10개의 double 값을 가지며 인덱스는 0부터 9까지입니다.

Java 배열 마스터하기: 효율적인 데이터 처리를 위한 종합 가이드

배열 처리

배열 요소를 처리할 때 모든 요소가 같은 타입이고 배열 크기를 알기 때문에 주로 for 루프나 foreach 루프를 사용합니다.

예제

배열 생성, 초기화, 처리의 완전한 예제입니다:

Live Demo
public class TestArray {
  public static void main(String[] args) {
    double[] myList = {1.9, 2.9, 3.4, 3.5};
    // 모든 배열 요소 출력
    for (int i = 0; i < myList.length; i++) {
      System.out.println(myList[i] + " ");
    }
    // 모든 요소 합계
    double total = 0;
    for (int i = 0; i < myList.length; i++) {
      total += myList[i];
    }
    System.out.println("Total is " + total);
    // 최대 요소 찾기
    double max = myList[0];
    for (int i = 1; i < myList.length; i++) {
      if (myList[i] > max) max = myList[i];
    }
    System.out.println("Max is " + max);
  }
}

이 코드는 다음 결과를 생성합니다:

출력

1.9 2.9 3.4 3.5
Total is 11.7
Max is 3.5

foreach 루프

JDK 1.5에서 foreach 루프 또는 향상된 for 루프로 알려진 새로운 for 루프가 도입되었습니다. 이는 인덱스 변수 없이 배열을 순차적으로 순회할 수 있게 합니다.

예제

다음 코드는 배열 myList의 모든 요소를 표시합니다:

Live Demo
public class TestArray {
  public static void main(String[] args) {
    double[] myList = {1.9, 2.9, 3.4, 3.5};
    // 모든 배열 요소 출력
    for (double element: myList) {
      System.out.println(element);
    }
  }
}

이 코드는 다음 결과를 생성합니다:

출력

1.9
2.9
3.4
3.5

메서드에 배열 전달

기본 타입 값을 메서드에 전달할 수 있는 것처럼 배열도 메서드에 전달할 수 있습니다. 예를 들어 다음 메서드는 int 배열의 요소들을 표시합니다:

예제

public static void printArray(int[] array) {
  for (int i = 0; i < array.length; i++) {
    System.out.print(array[i] + " ");
  }
}

배열을 전달하여 호출할 수 있습니다. 예를 들어 다음 문장은 3, 1, 2, 6, 4, 2를 표시하기 위해 printArray 메서드를 호출합니다:

예제

printArray(new int[]{3, 1, 2, 6, 4, 2});

메서드에서 배열 반환

메서드는 배열을 반환할 수도 있습니다. 예를 들어 다음 메서드는 다른 배열의 역순인 배열을 반환합니다:

예제

public static int[] reverse(int[] list) {
  int[] result = new int[list.length];
  for (int i = 0, j = result.length - 1; i < list.length; i++, j--) {
    result[j] = list[i];
  }
  return result;
}

Arrays 클래스

java.util.Arrays 클래스에는 배열 정렬, 검색, 비교, 요소 채우기 위한 다양한 정적 메서드들이 포함되어 있습니다. 이 메서드들은 모든 기본 타입에 대해 오버로드되어 있습니다.

번호 메서드 & 설명
1

public static int binarySearch(Object[] a, Object key)

지정된 Object 배열(Byte, Int, double 등)에서 이진 검색 알고리즘으로 지정된 값 검색. 배열은 호출 전 정렬되어야 함. 검색 키가 리스트에 있으면 인덱스 반환, 없으면 (–(삽입 포인트 + 1)) 반환.

2

public static boolean equals(long[] a, long[] a2)

지정된 두 long 배열이 서로 같으면 true 반환. 두 배열이 같은 요소 수를 가지고 모든 대응되는 요소 쌍이 같으면 같음으로 간주. 다른 기본 타입(Byte, short, Int 등)에도 같은 메서드 사용 가능.

3

public static void fill(int[] a, int val)

지정된 int 배열의 각 요소에 지정된 int 값 할당. 다른 기본 타입(Byte, short, Int 등)에도 같은 메서드 사용 가능.

4

public static void sort(Object[] a)

요소들의 자연적 순서에 따라 지정된 객체 배열을 오름차순으로 정렬. 다른 기본 타입(Byte, short, Int 등)에도 같은 메서드 사용 가능.

java

  1. C# 배열 마스터하기: 선언, 초기화, 조작과 LINQ 연산
  2. Java 연산자 마스터하기: 종류, 문법, 실전 예제
  3. Java 배열 복사 기법: 대입, 루프, System.arraycopy, Arrays.copyOfRange 총정리
  4. Java 인터페이스 마스터: 개념, 구현, 모범 사례
  5. Java Try-with-Resources 마스터: 자동 리소스 관리 완전 해설
  6. Java 애너테이션 완전 해설: 종류, 배치 위치, 실전 예제
  7. C++ 배열 완전 정복: 선언, 초기화, 포인터 기법
  8. C++ 동적 배열 할당 완벽 가이드: new, delete, 실전 코드 예제
  9. Java 배열 튜토리얼: 선언, 생성, 초기화와 예제 코드
  10. Java 객체 배열 생성하기: 단계별 완벽 가이드