[Java] ArrayList ↔ 배열(Array) 변환 방법

은현수·2024년 6월 19일

Intro

자바에서 ArrayList와 배열을 변환할때 자료형에 따라 방법이 조금씩 다른거 같아 추후 사용을 위해 정리두고자 한다.

ArrayList -> 배열(Array)

1. List함수 toArray 이용

ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");

// 1. toArray() - 배열 선언과 동시에 할당
String[] arr = list.toArray(new String[0]); // ["a", "b", "c"]

// 2. toArray() - 배열 선언 후 값 할당
String[] arr2 = new String[list.size()];
list.toArray(arr2); // ["a", "b", "c"]

toArray방법으로 쉽게 변환할 수 있다. 주로 String 을 변환할 때 사용한다.

하지만 int, double, float과 같은 자료형들은 toArray방법으로 변환 할 수 없어 다른 방법을 이용해아한다고 한다.

2. 반복문(for문) 이용

public static void main(String args[]) {
    ArrayList<Integer> list = new ArrayList<>();
    list.add(1);
    list.add(2);
    list.add(3);

    int[] arr1 = new int[list.size()];
    for (int i = 0; i < list.size(); i++)
        arr1[i] = list.get(i);

배열(Array) -> ArrayList

1. Arrays 함수 Arrays.asList() 이용

import java.util.*;

String[] strArr = {"one", "two", "three"};
ArrayList<String> strArrList = new ArrayList<>(Arrays.asList(strArr));    // ArrayList : ["one", "two", "three"]

이 방법 또한 int, float, double등의 자료형에선 이용할 수 없다.

2. 반복문(for문) 이용

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {

        // 정적 배열
        int[] staticArray = { 1, 2, 3, 4, 5 };

        // 동적 배열로 변환
        ArrayList<Integer> dynamicList = new ArrayList<>();
        for (int num : staticArray) {
            dynamicList.add(num);
        }

        System.out.print(dynamicList);
        //[1, 2, 3, 4, 5]
    }
}
profile
백엔드 개발자

0개의 댓글