char 배열을 List로 바꿔서 사용하고 싶은데 자꾸 안돼서 stream으로 변환해서 바꾸려고 했었다.
char[] arr = {'a','b','c'};
// Arrays.asList(arr) 는 List<char[]> 로 반환해서 내가 원하던게 아니었다.
// Arrays.stream(arr) 에러발생!!!
// 만약 int 배열이라면 IntStream으로 변환이 가능했을텐데 char는 그게 안된다.
안되길래 찾아보니 char는 원시타입이기 때문에 Stream으로 변경 불가능하고 래퍼 클래스로 감싸줘야 한단다.
그래서 그냥 ArrayList하나 만든 후 for each를 통해서 add로 하나씩 넣어줬다.
ArrayList<Character> list = new ArrayList<>();
for (char c : arr) {
// new Character(c) 는 deprecated 되었으니 Character의 static 메소드인 valueOf를 사용했다.
list.add(Character.valueOf(c));
}
해결 완료!
되도록이면 원시타입들 래퍼클래스로 감싸서 사용하는게 좋을 것 같다.
'TIL' 카테고리의 다른 글
파스칼의 삼각형 (0) | 2022.04.01 |
---|---|
컬렉션에서 중복값 찾아내기 (0) | 2022.03.30 |
원시값 배열을 Stream을 이용해서 리스트로 바꾸기 (0) | 2022.03.30 |
자바 기초 문제 - 사탕 나눠 주기 (0) | 2022.03.30 |
자바 기초 문제(커서 편집기) (0) | 2022.03.29 |
댓글