본문 바로가기

Language/Java

몰랐던 것

1. Intger 컬랙션 프레임워크를 int 배열로 바꾸기. 

int [] arr = map.keySet().stream().mapToInt(x->x).toArray();

maptoInt(x->x): 컬랙션 프레임 워크에는 값들을 Wrapper Class인 Integer로 다 저장 했다. 하지만 배열에 저장할려면 type이 원시타입(int, double,...) 여야 한다 해당 maptoInt는 컬랙션 프레임 워크값을 IntStream으로 바꿔준다.

(IntStream 원시 타입 int에 대한  Stream 이다.)

 

toArray(): 컬랙션을 배열로 바꿔주는 함수. (원시 타입으로 바꿀 거면, 인수도 원시 타입이어야 한다.)

2. String ArrayList를 String 배열로 바꾸는 방법

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

to Array() 속 인수의 의미.

1. List를 toArray 메서드에 파라메터로 넘어가는 배열 객체의 size만큼의 배열로 전환한다.
2. 단, 해당 List size가 인자로 넘어가는 배열 객체의 size보다 클때, 해당 List의 size로 배열이 만들어진다.
3. 반대로 해당 List size가 인자로 넘어가는 배열객체의 size보다 작을때는, 인자로 넘어가는 배열객체의 size로 배열이 만들어진다.

 

즉 배열로 전환 시 배열의 사이즈가 List 의 사이즈와 일치하도록 하기 위해 이렇게 만드는 것이다. 

stream 사용 하여 전환 시에는 toArray()의 괄호 안을 채워줄 필요가 없다. 이유는 아직 모른다.

'Language > Java' 카테고리의 다른 글

💚 백준 2018 수들의 합 5  (0) 2024.05.06
Enum에 대하여  (0) 2024.01.16
Runnable  (0) 2023.03.11
Thread  (0) 2023.03.09
Throws (예외 처리 미루기)  (0) 2023.03.02