본문 바로가기
Algorithm/Programmers

[Programmers] Lv.0 / 정수 찾기 / Java

by unknownomad 2024. 3. 6.

문제

 

풀이

import java.util.stream.IntStream;

class Solution {
    public int solution(int[] num_list, int n) {
        return IntStream.of(num_list).anyMatch(x -> x == n) ? 1 : 0;
    }
}

Arrays.asList(num_list).contains(n) 조건을 사용할 수 없던 이유

  • Arrays.asList()는 기본 배열을 단일 요소로 취급함. 예를 들어, 입력값이 [1, 2, 3, 4, 5]와 같이 정수 배열이 주어졌을 때, Arrays.asList()는 이를 단일 요소로 간주하고 크기가 1인 리스트를 생성함. 즉, 리스트에는 [1, 2, 3, 4, 5]라는 하나의 요소가 포함됨
  • Java에서 기본 유형은 제네릭 유형 인자로 사용할 수 없으므로 Arrays.asList()는 기본 배열을 단일 요소로 취급하고 해당 단일 요소를 포함하는 리스트를 생성함
  • Java에서 기본 유형(primitive types)은 제네릭(generic) 유형 인자로 사용할 수 없는데, 이는 제네릭이 참조 타입(reference types)에 대해서만 작동하기 때문임. 제네릭은 객체 타입에 대해 작동하며, 기본 유형은 객체가 아니라 값이기 때문에 제네릭 유형 인자로 사용할 수 없음. 따라서 기본 유형을 사용하는 경우에는 해당 타입을 박싱(boxing)하여 객체로 만들거나, 해당 기본 유형의 래퍼(wrapper) 클래스를 사용해야함

 

출처

https://school.programmers.co.kr/learn/courses/30/lessons/181840

댓글