HOWTO · Java
Java에서 배열의 하위 집합 얻기
이 자습서는 Java에서 배열의 하위 집합을 찾는 방법을 보여줍니다.
이 페이지의 내용
이 자습서에서는 Java에서 배열의 하위 집합을 가져오는 몇 가지 방법을 보여줍니다.
Arrays.copyOf() 메서드를 사용하여 배열의 하위 집합 가져오기
Arrays.copyOf()는 지정된 배열을 지정된 유형의 다른 배열로 복사하는 Java Util의 내장 메서드입니다. 이 방법은 배열의 하위 집합을 가져올 수 있지만 하위 배열이 첫 번째 색인이 아닌 다른 색인에서 시작하는 경우에는 작동하지 않습니다.
예:
package delftstack;
import java.util.Arrays;
public class Array_Subset {
public static void main(String[] args) {
String[] demo_array = new String[] {"Delftstack1", "Delftstack2", "Delftstack3", "Delftstack4",
"Delftstack5", "Delftstack6", "Delftstack7"};
int End_Index = 5;
String[] Subset = Arrays.copyOf(demo_array, End_Index, String[].class);
System.out.println(Arrays.toString(Subset));
}
}
위의 코드는 시작 색인에서 주어진 End_index로 주어진 배열의 하위 집합을 복사합니다.
출력:
[Delftstack1, Delftstack2, Delftstack3, Delftstack4, Delftstack5]
Arrays.copyOfRange() 메서드를 사용하여 배열의 하위 집합 가져오기
‘Arrays.copyOfRange()’ 메서드는 주어진 시작 및 끝 인덱스가 있는 배열에서 하위 집합을 복사하는 데 사용됩니다. 하위 집합을 다른 어레이에 복사합니다.
예:
package delftstack;
import java.util.Arrays;
public class Array_Subset {
public static <Demo> Demo[] Array_Subset(Demo[] Array, int Begin_Index, int End_Index) {
return Arrays.copyOfRange(Array, Begin_Index, End_Index);
}
public static void main(String[] args) {
String[] Demo_Array = {"Delftstack1", "Delftstack2", "Delftstack3", "Delftstack4",
"Delftstack5", "Delftstack6", "Delftstack7"};
int Begin_Index = 2;
int End_Index = 7;
String[] Subset = Array_Subset(Demo_Array, Begin_Index, End_Index);
System.out.println(Arrays.toString(Subset));
}
}
출력:
[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]
Java 8의 Stream.IntStream 메서드를 사용하여 배열의 하위 집합 가져오기
Java Stream을 사용하여 배열의 하위 집합을 가져올 수도 있습니다. 지정된 범위 사이의 요소 스트림을 가져와 배열에 넣습니다.
예:
package delftstack;
import java.util.Arrays;
import java.util.stream.IntStream;
public class Array_Subset {
public static void main(String[] args) {
String[] Demo_Arrary = {"Delftstack1", "Delftstack2", "Delftstack3", "Delftstack4",
"Delftstack5", "Delftstack6", "Delftstack7"};
int Begin_Index = 2;
int End_Index = 7;
String[] Subset = IntStream.range(Begin_Index, End_Index)
.mapToObj(x -> Demo_Arrary[x])
.toArray(String[] ::new);
System.out.println(Arrays.toString(Subset));
}
}
출력:
[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]
System.arraycopy() 메서드를 사용하여 배열의 하위 집합 가져오기
System.arraycopy() 메서드는 주어진 시작 및 끝 인덱스가 있는 배열에서 하위 집합을 복사할 수 있습니다. 하위 집합을 다른 어레이에 복사합니다.
예:
package delftstack;
import java.util.Arrays;
public class Array_Subset {
public static void main(String[] args) {
String[] Demo_Array = new String[] {"Delftstack1", "Delftstack2", "Delftstack3", "Delftstack4",
"Delftstack5", "Delftstack6", "Delftstack7"};
int Begin_Index = 2;
int End_Index = 7;
String[] Subset = new String[End_Index - Begin_Index];
System.arraycopy(Demo_Array, Begin_Index, Subset, 0, Subset.length);
System.out.println(Arrays.toString(Subset));
}
}
System.arraycopy()는 Arrays.copyOfRange()와 유사하게 작동합니다. 지정된 범위 내에서 배열의 하위 집합을 복사합니다.
출력:
[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]
Apache Commons Lang을 사용하여 배열의 하위 집합 가져오기
ArrayUtils 클래스는 subarray() 메서드를 사용하여 배열의 하위 집합을 가져오는 기능을 제공합니다. 이 메서드는 지정된 범위의 요소가 있는 개체를 반환합니다.
예:
package delftstack;
import java.util.Arrays;
import org.apache.commons.lang3.ArrayUtils;
public class Array_Subset {
public static void main(String[] args) {
String[] Demo_Array = new String[] {"Delftstack1", "Delftstack2", "Delftstack3", "Delftstack4",
"Delftstack5", "Delftstack6", "Delftstack7"};
int Begin_Index = 2;
int End_Index = 7;
Object[] Subset = ArrayUtils.subarray(Demo_Array, Begin_Index, End_Index);
System.out.println(Arrays.toString(Subset));
}
}
출력:
[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]
목록 변환을 사용하여 배열의 하위 집합 가져오기
이 메서드는 배열을 목록으로 변환하고 subList() 메서드를 사용하여 지정된 범위 내에서 배열의 하위 집합을 가져와 다른 배열에 복사합니다.
예:
package delftstack;
import java.util.Arrays;
public class Array_Subset {
public static void main(String[] args) {
String[] Demo_Array = new String[] {"Delftstack1", "Delftstack2", "Delftstack3", "Delftstack4",
"Delftstack5", "Delftstack6", "Delftstack7"};
int Begin_Index = 2;
int End_Index = 7;
String[] Subset =
Arrays.asList(Demo_Array).subList(Begin_Index, End_Index).toArray(new String[0]);
System.out.println(Arrays.toString(Subset));
}
}
출력:
[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]
사용자 지정 방법을 사용하여 배열의 하위 집합 가져오기
배열의 하위 집합을 가져오는 방법을 작성해 봅시다. for 루프를 사용하여 지정된 범위 내에서 배열의 하위 집합을 가져올 수 있습니다.
예:
package delftstack;
import java.util.Arrays;
public class Array_Subset {
public static void main(String[] args) {
String[] Demo_Array = new String[] {"Delftstack1", "Delftstack2", "Delftstack3", "Delftstack4",
"Delftstack5", "Delftstack6", "Delftstack7"};
int Begin_Index = 2;
int End_Index = 7;
String[] Subset = new String[End_Index - Begin_Index];
for (int x = 0; x < Subset.length; x++) {
Subset[x] = Demo_Array[Begin_Index + x];
}
System.out.println(Arrays.toString(Subset));
}
}
출력:
[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]