- src: 원본 배열 - srcPos : 복사를 시작할 원본 배열의 인덱스 - dest : 복사 대상 배열 - destPos: 복사를 시작할 대상 배열의 인덱스 - length : 복사할 요소의 개수
1.4. System.arraycopy() : 배열 재구성
💡 System.arraycopy()를 통해서 새로운 배열을 만들어서 첫번째첫 번째 값을 비웁니다. array 배열에서 인덱스 1부터 시작하여 newArray 배열에 복사합니다. newArray는 array의 요소 중 첫 번째 요소("first")를 제외한 나머지 요소를 가지게 됩니다.
- src: 원본 배열 - srcPos : 복사를 시작할 원본 배열의 인덱스 - dest : 복사 대상 배열 - destPos: 복사를 시작할 대상 배열의 인덱스 - length : 복사할 요소의 개수
2) 배열/리스트의 특정 값 비우기
1. Stream API를 이용한 특정 값 비우기
💡 배열내에서 Stream API를 이용하여서 특정 조건 값을 제거하여 배열을 반환받는 방식을 이용하여 특정값을 제거합니다.
// Stream을 이용한 특정 값 제거 방법
String[] fruitArr1 = {"apple", "banana", "cherry", "berry"};
fruitArr1 = Arrays.stream(fruitArr1)
.filter(item -> !item.equals("apple"))
.toArray(String[]::new); // ["banana", "cherry", "berry"]
2. List의 remove() 메서드로 특정 값 비우기
💡 리스트로 변환하여 remove() 메서드를 사용하여서 배열의 순차적으로 먼저 발견된 값만 발견하여 반환합니다.
// 리스트로 변환하여 제거 방법: 해당 값은 순차적으로 먼저 발견된 값만 제거합니다.
String[] fruitArr2 = {"apple", "banana", "cherry", "berry", "apple"};
List<String> fruitArrList = new ArrayList<>(Arrays.asList(fruitArr2));
fruitArrList.remove("apple");
fruitArr2 = fruitArrList.toArray(String[]::new); // ["banana", "cherry", "berry", "apple"]
3. List의 removeAll() 메서드로 특정 값 비우기
💡 배열을 리스트로 변환하여 removeAll() 메서드를 사용하여서 값과 동일하게 존재하는 모든 값을 제거하여 반환합니다.
// 리스트로 변환하여 제거 방법: 해당 값은 배열 내에 동일하게 존재하는 모든 값을 제거합니다.
String[] fruitArr3 = {"apple", "banana", "cherry", "berry", "apple"};
List<String> fruitArrList3 = Arrays.asList(fruitArr3);
fruitArrList3.removeAll(Arrays.asList("apple"));
fruitArr3 = fruitArrList3.toArray(String[]::new);