Java에서 배열의 하위 집합 얻기

Sheeraz Gul 2023년10월12일
  1. Arrays.copyOf() 메서드를 사용하여 배열의 하위 집합 가져오기
  2. Arrays.copyOfRange() 메서드를 사용하여 배열의 하위 집합 가져오기
  3. Java 8의 Stream.IntStream 메서드를 사용하여 배열의 하위 집합 가져오기
  4. System.arraycopy() 메서드를 사용하여 배열의 하위 집합 가져오기
  5. Apache Commons Lang을 사용하여 배열의 하위 집합 가져오기
  6. 목록 변환을 사용하여 배열의 하위 집합 가져오기
  7. 사용자 지정 방법을 사용하여 배열의 하위 집합 가져오기
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]
작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

관련 문장 - Java Array