본문 바로가기

자바

[Java] Array <-> List 변환

1. Arrays.asList() // Array → List

 

import java.util.List;
import java.util.Arrays;

public class Test {
	public static void main(String[] args) {
        String[] strArr = {"A", "B", "C"};
        List<String> list = Arrays.asList(strArr);

        System.out.println(list.toString());
    }
}
[A, B, C]

리스트를 바꾸면 원본 배열의 값도 바뀌고, 배열을 바꿔도 리스트의 값이 바뀐다.

Arrays.asList()가 반환한 List의 크기를 변경할 수 없다 → 추가, 삭제가 불가능하다 (저장된 내용 변경은 가능) 크기를 변경하고 싶다면 (원본 배열의 값과 변환 된 list가 동기화 되는것을 막으려면)

List<String> list = new ArrayList<String>(Arrays.asList(strArr));

 

2. toArray() // List → Array

import java.util.ArrayList;
import java.util.Arrays;

public class Test {
	public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>(); 
        list.add("A");
        list.add("B");
        String[] strArr = list.toArray(new String[0]);
        System.out.println(Arrays.toString(strArr));
    }
}
[A, B]

toArray()의 파라미터로 객체를 생성하여 넘겨주는데 배열의 크기가 list의 크기보다 작다면 자동으로 list크기로 만들어 주고 list크기보다 크다면 빈 공간은 null로 채워진다.

'자바' 카테고리의 다른 글

[Java]배열의 중복 제거  (0) 2023.09.15