1. 문제 상황

코딩 테스트 문제를 푸는 중 다음과 같이 리스트를 생성한 뒤 피보나치 수열을 만들려고 하였음

List<Integer> fibos = List.of(1, 1);

for(int i = 2; i<= num; i++){
    int next = fibos.get(i-2) + fibos.get(i-1);
    fibos.add(next % 1234567); // 오버플로우 방지용 문제 요구사항
}

하지만 UnsupportedOperationException 예외가 발생함

2. 문제 원인

코드를 조금씩 바꿔보며 원인을 특정할 수 있었음

List.of()를 통해 생성되는 리스트는 불변 객체이며, 값의 추가, 변경, 삭제가 허용되지 않는다고 함

3. 문제 해결

다음과 같이 리스트 선언부를 수정하여 해결

List<Integer> fibos = new ArrayList<>(){{
		add(1);
		add(1);
}}