TroubleShooting

java.lang.UnsupportedOperationException: remove

nineDeveloper 2020. 4. 23.
728x90

아래와 같이 코드를 작성하고 리스트 원소를 삭제하기 위해 removeIf 를 수행하면

List<String> strList = Arrays.asList(new String[] {"A","B","C","D","E"});
strList.removeIf(data -> data.equals("A"));

java.lang.UnsupportedOperationException: remove 이런 에러를 만나게 된다

찾아보니 Arrays.asList 로 생성한 리스트는 고정되어 있어 원소를 제거할 수 없다고 한다

그래서 아래와 같이 new ArrayList<>()Arrays.asList 코드를 감싸서 리스트를 생성해야 리스트 원소를 삭제할 수 있다

List<String> strList = new ArrayList<>(Arrays.asList(new String[] {"A","B","C","D","E"}));
strList.removeIf(data -> data.equals("A"));

참조:
https://stackoverflow.com/questions/43020075/java-util-arrays-aslist-when-used-with-removeif-throws-unsupportedoperationexcep

728x90

댓글

💲 추천 글