Java에서 ArrayList를 Int 배열로 변환

Joel Swapnil Singh 2023년10월12일
  1. Java에서 Arraylist를 Int 배열로 변환해야 함
  2. Java에서 Arraylist를 Int 배열로 변환하는 방법
Java에서 ArrayList를 Int 배열로 변환

기본 데이터 유형(크기가 정의되고 byte, char, short, int 등과 같은 유사한 유형의 데이터를 포함하는 데이터 유형)과 클래스 객체를 배열에 저장할 수 있습니다.

반면 ArrayList에는 클래스 객체만 저장할 수 있습니다. 또한 ArrayList는 요소의 수에 따라 증가하거나 감소할 수 있는 동적 길이를 가지고 있습니다.

이 기사에서는 Java에서 배열 목록을 int 배열로 변환하는 다양한 방법에 대해 설명합니다.

Java에서 Arraylist를 Int 배열로 변환해야 함

ArrayList의 도움으로 배열을 사용하여 수행된 모든 작업을 수행할 수 있습니다.

그러나 ArrayList는 다른 작업을 실행할 때 비교적 느립니다. 이는 ArrayList에 get(), put(), resize() 및 기타 여러 작업 모음이 있고 모두 CPU 시간과 메모리 사용률에 영향을 미치기 때문입니다.

고정 크기 데이터에 대해서만 일부 작업을 수행해야 하는 경우 항상 ArrayList 대신 Arrays를 사용해야 합니다.

Java에서 Arraylist를 Int 배열로 변환하는 방법

정수의 ArrayList가 주어졌다고 가정합니다. ArrayList를 int Array로 변환해야 합니다. for 루프, Object[] toArray() 메서드, T[] toArray() 메서드 및 mapToInt() 메서드를 사용하여 이 작업을 수행할 수 있습니다.

각각의 접근 방식에 대해 하나씩 논의해 보겠습니다.

for 루프를 사용하여 Arraylist를 Int 배열로 변환

for 루프를 사용하여 ArrayList를 int 배열로 수동으로 변환할 수 있습니다. ArrayList가 주어지면 먼저 ArrayList와 같은 크기의 int 배열을 선언합니다.

size() 함수를 사용하여 ArrayList 크기를 계산할 수 있습니다. 이제 ArrayList의 데이터 요소를 int 배열로 복사할 수 있습니다.

이를 위해 get() 메서드와 for 루프를 사용하여 ArrayList 요소를 탐색합니다. 아래 solve() 함수에서 이 접근 방식을 구현했습니다.

작동 방식을 이해하기 위해 아래 코드를 살펴보겠습니다.

import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void solve(List<Integer> nums) {
    int[] arr = new int[nums.size()];
    for (int i = 0; i < nums.size(); i++) {
      arr[i] = nums.get(i);
    }
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
  public static void main(String[] args) {
    List<Integer> nums = new ArrayList<Integer>();
    nums.add(10);
    nums.add(20);
    nums.add(30);
    nums.add(40);
    nums.add(50);
    System.out.println("ArrayList elements");
    for (int i = 0; i < nums.size(); i++) {
      System.out.println(nums.get(i));
    }
    System.out.println("Array elements");
    solve(nums); // ArrayList to Array Conversion
  }
}

출력:

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

Object[] toArray() 함수를 사용하여 Arraylist를 Int 배열로 변환

Java에서 Object[] toArray() 함수를 사용하여 ArrayList를 int 배열로 변환할 수도 있습니다.

ArrayList가 주어지면 먼저 Object 객체를 만들고 toArray() 함수를 사용합니다. toArray() 메서드는 Object 유형의 배열을 반환합니다.

이를 제거하려면 컴파일 오류를 피하기 위해 원하는 데이터 유형(이 경우 int)으로 유형 변환해야 합니다. 아래 solve() 함수에서 이 접근 방식을 구현했습니다.

작동 방식을 이해하기 위해 아래 코드를 살펴보겠습니다.

import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void solve(List<Integer> nums) {
    Object[] obj_arr = nums.toArray();
    int[] arr = new int[nums.size()];
    for (int i = 0; i < obj_arr.length; i++) {
      arr[i] = (int) obj_arr[i];
    }
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
  public static void main(String[] args) {
    List<Integer> nums = new ArrayList<Integer>();
    nums.add(10);
    nums.add(20);
    nums.add(30);
    nums.add(40);
    nums.add(50);
    System.out.println("ArrayList elements");
    for (int i = 0; i < nums.size(); i++) {
      System.out.println(nums.get(i));
    }
    System.out.println("Array elements");
    solve(nums); // ArrayList to Array Conversion
  }
}

출력:

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

T[] toArray 함수를 사용하여 Arraylist를 Int 배열로 변환

Java에서 T[] toArray() 함수를 사용하여 ArrayList를 int 배열로 변환할 수도 있습니다. ArrayList가 주어지면 먼저 Integer 객체를 만들고 toArray() 함수를 사용합니다.

이 방법에서 배열이 충분히 크지 않으면 이 목적을 위해 동일한 유형의 새 배열이 할당됩니다. 아래 solve() 함수에서 이 접근 방식을 구현했습니다.

작동 방식을 이해하기 위해 아래 코드를 살펴보겠습니다.

import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void solve(List<Integer> nums) {
    Integer[] int_arr = new Integer[nums.size()];
    int_arr = nums.toArray(int_arr);
    int[] arr = new int[nums.size()];
    for (int i = 0; i < int_arr.length; i++) {
      arr[i] = int_arr[i];
    }
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
  public static void main(String[] args) {
    List<Integer> nums = new ArrayList<Integer>();
    nums.add(10);
    nums.add(20);
    nums.add(30);
    nums.add(40);
    nums.add(50);
    System.out.println("ArrayList elements");
    for (int i = 0; i < nums.size(); i++) {
      System.out.println(nums.get(i));
    }
    System.out.println("Array elements");
    solve(nums); // ArrayList to Array Conversion
  }
}

출력:

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

mapToInt() 함수를 사용하여 Arraylist를 Int 배열로 변환

목록의 streams() 메소드를 ArrayList의 데이터를 기본 정수 값으로 변환하는 mapToInt() 함수와 결합하여 Java에서 ArrayList를 int 배열로 변환할 수도 있습니다. 이것은 ArrayList를 Java 8부터 액세스할 수 있는 정수 배열로 변환하는 새롭고 매력적인 방법입니다.

ArrayList가 주어지면 먼저 제공된 ArrayList에서 stream() 함수를 호출합니다. 그런 다음 결과로 구성된 정수 스트림을 반환하는 mapToInt() 메서드를 호출합니다.

그런 다음 추출된 결과를 int 배열로 변환하는 toArray() 메서드를 호출합니다. 아래 solve() 함수에서 이 접근 방식을 구현했습니다.

작동 방식을 이해하기 위해 아래 코드를 살펴보겠습니다.

import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
  public static void solve(List<Integer> nums) {
    int[] arr = nums.stream().mapToInt(i -> i).toArray();
    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
  public static void main(String[] args) {
    List<Integer> nums = new ArrayList<Integer>();
    nums.add(10);
    nums.add(20);
    nums.add(30);
    nums.add(40);
    nums.add(50);
    System.out.println("ArrayList elements");
    for (int i = 0; i < nums.size(); i++) {
      System.out.println(nums.get(i));
    }
    System.out.println("Array elements");
    solve(nums); // ArrayList to Array Conversion
  }
}

출력:

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

관련 문장 - Java Array

관련 문장 - Java ArrayList