티스토리 뷰

들어가며

  • 배열을 List로 변환하기 위해 Arrays.asList() 를 사용하여 remove() 메서들 사용하던 중 java.lang.UnsupportedOperationException: remove이라는 에러가 발생하였다.
  • 이슈가 발생한 원인에 대해서 알아보고자 한다.

문제의 원인

  • Arrays.asList()이 반환하는 값은 고정 크기의 List를 반환하기 때문이다. API를 참고해보면
Arrays.asList: Returns a fixed-size list backed by the specified array.
  • 즉, Arrays.asList()로 반환된 List는 구조를 변경할 수 없는 불변 List라는 것이다.

해결 방법

  • 만약 Arrays.asList() 반환된 List의 구조를 변경하고 싶다면 아래 처럼 새로운 List를 만들어서 사용하면 된다.
    List<String> list = new ArrayList<String>(Arrays.asList(split));

참고

 

Why do I get an UnsupportedOperationException when trying to remove an element from a List?

I have this code: public static String SelectRandomFromTemplate(String template,int count) { String[] split = template.split("|"); List list=Arrays.asList(split); Random r =...

stackoverflow.com


끝으로

이 글이 도움이 되었다면, 하단의 Google 광고 한번씩 클릭 부탁 드립니다. 🙏🙏🙏

광고 클릭은 많은 힘이 됩니다!

반응형
댓글