UnsupportedOperationException: 목록에서 요소 제거
list.remove(index)를 사용하여 목록에서 요소를 제거하려고 하면 다음이 발생할 수 있습니다. UnsupportedOperationException이 발생합니다. 이 오류는 Arrays.asList()에서 반환된 고정 크기 목록의 사용으로 인해 발생합니다.
Arrays.asList()는 고정 크기 목록을 반환합니다
배열 .asList()는 주어진 배열이 지원하는 목록을 생성합니다. 이 목록은 변경할 수 없으며 요소 추가 또는 제거와 같은 구조적 수정을 지원하지 않습니다.
수정:
이 문제를 해결하려면 제거를 허용하는 변경 가능한 목록 구현을 사용하세요. 예를 들어 LinkedList를 사용할 수 있습니다.
List<String> list = new LinkedList<>(Arrays.asList(split));
정규 표현식으로 분할
split() 메서드는 정규 표현식과 함께 문자열을 분할하는 데 사용됩니다. 파이프 문자(|)는 리터럴로 사용될 때 이스케이프해야 하는 정규식 메타 문자입니다.
수정:
리터럴 파이프 문자로 분할하려면 이스케이프하세요. 이중 백슬래시를 사용합니다.
template.split("\|")
최적화 알고리즘
remove()를 반복적으로 호출하는 대신 더 효율적인 알고리즘을 고려하십시오.
이 알고리즘은 O(N) 시간에 실행됩니다. 여기서 N은 목록의 크기로 원래 접근 방식보다 훨씬 빠릅니다.
위 내용은 목록에서 요소를 제거하면 UnsupportedOperationException이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!