배열을 리스트로 변환하고 인덱스로 특정 위치의 데이터를 삭제하는데 에러가 발생하는 경우에 대해 다뤄본다.
[필요한 import]
import java.util.List;
import java.util.Arrays;
String[] lines = json.split(System.getProperty("line.separator"));
List<String> lineList = Arrays.asList(lines);
필자의 경우 String > split 으로 String[] 문자열 데이터 타입의 배열을 만들어 List로 변환해주었다.
array 를 list 로 변환하여 remove 메소드를 사용해 보았다.
lines = json.split(System.getProperty("line.separator"));
List<String> lineList = Arrays.asList(lines);
lineList.remove(0);
lineList.remove(lineList.size()-1);
맨 앞과 뒤에 데이터를 삭제하려고 index 기반의 remove를 사용하였는데, 아래와 같은 에러가 발생하였다.
- 원인 : Arrays.asList 로 생성한 리스트는 고정되어있어 원소를 제거할 수 없다고 함.
- 해결 방법 : new ArrayList<>()로 Arrays.asList 를 감싸서 생성 해야함.
[필요한 import]
import java.util.ArrayList;
List<String> lineList = new ArrayList<>(Arrays.asList(lines));
System.out.println("--- 삭제 전 ---");
for(int i=0; i < lineList.size(); i++)
System.out.println(lineList.get(i));
lineList.remove(0);
lineList.remove(lineList.size()-1);
System.out.println("--- 삭제 후 ---");
for(int i=0; i < lineList.size(); i++)
System.out.println(lineList.get(i));
[결과]
맨 앞과 맨 뒤의 {, } 자리가 삭제되어 출력되는 것을 볼 수 있다.
[참고 자료]
[Java] mongoDB 연결하는 방법 (자바에서 몽고디비 접근, jar 설정) (0) | 2022.06.15 |
---|---|
[Java] json 파일 문자열(String)으로 읽는 방법 (4) | 2022.02.09 |
[Java] json 파일 파싱 다양한 방법 (key-value set, key set, get by key) (0) | 2022.01.27 |
[자바] Java 시작 - 업데이트된 라이센스 조항 해결 방법 (유료 삭제/무료 설치) (0) | 2022.01.24 |
[Launch4j] 자바 exe 파일 생성시 메모리 설정하는 방법 (0) | 2021.02.16 |