배열에서 요소를 제거한 다음 Java에서 다른 요소를 이동
-
for
루프를 사용하여 Java에서 배열 및 시프트에서 요소 제거 -
System.arraycopy()
를 사용하여 Java에서 배열 및 시프트에서 요소 제거 -
ArrayList
를 사용하여 Java에서 배열 및 시프트에서 요소 제거
Java의 배열은 동일한 유형의 고정 크기 요소 모음입니다. Java는 배열과 관련된 다양한 조작을 수행하는 다양한 방법을 제공합니다.
for
루프를 사용하여 Java에서 배열 및 시프트에서 요소 제거
이 접근 방식에서는 여러 개의for
루프를 사용하여arr
의 모든 요소를 반복하고 제거 할 요소를 확인합니다. 삭제할 요소를 찾으면arr.length-1
크기의 새 배열newArr
를 만듭니다. elementToBeDeleted
가있는 색인 앞의 모든 요소를 복사하기 위해 또 다른 루프를 실행합니다.
그런 다음elementToBeDeleted
뒤에 배열의 나머지 요소를 복사하기 위해 또 다른 루프를 실행하고 삭제해야하는 요소는 남겨 둡니다.
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int[] arr = {3, 1, 6, 5, 2, 8, 4};
int[] newArr = null;
int elementToBeDeleted = 5;
System.out.println("Original Array is: " + Arrays.toString(arr));
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] == elementToBeDeleted) {
newArr = new int[arr.length - 1];
for (int index = 0; index < i; index++) {
newArr[index] = arr[index];
}
for (int j = i; j < arr.length - 1; j++) {
newArr[j] = arr[j + 1];
}
break;
}
}
System.out.println("New Array after deleting element = " + elementToBeDeleted
+ " and shifting: " + Arrays.toString(newArr));
}
}
출력:
Original Array is: [3, 1, 6, 5, 2, 8, 4]
New Array after deleting element = 5 and shifting: [3, 1, 6, 2, 8, 4]
System.arraycopy()
를 사용하여 Java에서 배열 및 시프트에서 요소 제거
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
는 지정된 길이까지 소스 위치에서 대상 위치로 복사 작업을 시작하여 소스 배열을 대상 배열로 복사합니다.
여기에서 소스 배열arr
를 두 개의System.copy()
메소드를 실행하는removeElement
메소드에 전달합니다. 하나의 요소가 삭제되면arr
길이보다 길이가 1 인arrDestination
을 생성합니다.
먼저arr
에서 6을 삭제해야하므로 색인2
앞의 요소를 복사합니다. 다음으로, 삭제하려는 요소의 색인 뒤에 존재하는 나머지 요소를 가져옵니다.
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int[] arr = {3, 1, 6, 5, 2, 8, 4};
removeElement(arr, 2);
}
public static void removeElement(int[] arr, int index) {
int[] arrDestination = new int[arr.length - 1];
int remainingElements = arr.length - (index + 1);
System.arraycopy(arr, 0, arrDestination, 0, index);
System.arraycopy(arr, index + 1, arrDestination, index, remainingElements);
System.out.println("Elements -- " + Arrays.toString(arrDestination));
}
}
출력:
Elements -- [3, 1, 5, 2, 8, 4]
ArrayList
를 사용하여 Java에서 배열 및 시프트에서 요소 제거
Array
를ArrayList
로 변환하여 배열에서 요소를 제거 할 수 있으며 셔플 링은ArrayList
자체에서 처리됩니다.
아래 코드에서Integer
객체 배열arr
를 생성합니다. 그런 다음 삭제할 요소의 배열과 인덱스를removeElementUsingCollection
메소드에 전달합니다.이 메소드는 배열을 조작하고 객체 배열을 반환합니다.
전달 된 배열은 ArrayList tempList
로 변환되고remove()
메서드를 호출하면 지정된 인덱스의 요소가 목록에서 제거됩니다. 배열로 다시 변환 된 목록을 반환합니다.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
public static void main(String[] args) {
Integer[] arr = {3, 1, 6, 5, 2, 8, 4};
int elementToBeDeleted = 2;
System.out.println("Original Array " + Arrays.toString(arr));
for (int i = 0; i < arr.length; i++) {
if (arr[i] == elementToBeDeleted) {
arr = removeElementUsingCollection(arr, i);
break;
}
}
System.out.println("Array after removing element : " + elementToBeDeleted + " -- ");
for (int i = 0; i < arr.length; i++) {
System.out.print(" " + arr[i]);
}
}
public static Integer[] removeElementUsingCollection(Integer[] arr, int index) {
List<Integer> tempList = new ArrayList<Integer>(Arrays.asList(arr));
tempList.remove(index);
return tempList.toArray(new Integer[0]);
}
}
출력:
Original Array [3, 1, 6, 5, 2, 8, 4]
Array after removing element : 2 --
3 1 6 5 8 4
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn