코딩테스트-알고리즘/문법

오늘의 자바 문법 (ArrayList -> Array)

닉네임생각즁 2024. 1. 5. 06:43

 

ArrayList -> Array

 

String ArrayList -> String Array

List<String> list = new ArrayList<>();

String[] arr = list.toArray(new String[0]);

 

Integer ArrayList -> Integer Array 

List<Integer> list = new ArrayList<>();

Integer[] arr = list.toArray(new Integer[0]);

- toArray(T[] a) : T 타입 배열을 반환.

- T는 값 타입이 될 수 없기 때문에 int, double, float와 같은 타입의 배열은 이 방법으로는 얻을 수 없음
- 파라미터 a의 길이는 0으로 지정하면 알아서 list의 길이에 맞게 조정되어 arr에 저장됨

 

+

List<Integer> list = new ArrayList<>();

int[] arr = list.stream()
	.mapToInt(Integer::intValue)
    	.toArray();

 

 

 

Integer ArrayList -> int Array ⭐⭐⭐⭐⭐

    List<Integer> list = new ArrayList<>();

    
    // 방법 1
    int[] arr1 = new int[list.size()]
    for (int i = 0 ; i < list.size() ; i++) 
        arr1[i] = list.get(i).intValue();
    
    // 방법 2
    int[] arr2 = list.stream()
                .mapToInt(i -> i)
                .toArray();
    
    // 방법 3
    int[] arr3 = list.stream()
                .mapToInt(Integer::intValue)
                .toArray();

    // 방법 4
    int[] arr4 = list.stream()
                .filter(i -> i != null)
                .mapToInt(i -> i)
                .toArray();
}

 

- int형과 같은 primitive 타입은 toArray()를 사용할 수 없음 ⭐

'코딩테스트-알고리즘 > 문법' 카테고리의 다른 글

오늘의 자바 문법  (0) 2024.01.07
오늘의 자바 문법  (1) 2024.01.06
오늘의 자바 문법  (0) 2023.12.25
오늘의 자바 문법  (1) 2023.12.23
오늘의 자바 문법  (0) 2023.12.22