Obtenga el subconjunto de una matriz en Java

Sheeraz Gul 12 octubre 2023
  1. Utilice el método Arrays.copyOf() para obtener el subconjunto de una matriz
  2. Utilice el método Arrays.copyOfRange() para obtener el subconjunto de una matriz
  3. Use el método Stream.IntStream de Java 8 para obtener el subconjunto de una matriz
  4. Utilice el método System.arraycopy() para obtener el subconjunto de una matriz
  5. Use Apache Commons Lang para obtener el subconjunto de una matriz
  6. Use la conversión de lista para obtener el subconjunto de una matriz
  7. Use el método personalizado para obtener el subconjunto de una matriz
Obtenga el subconjunto de una matriz en Java

Este tutorial demuestra algunos métodos para obtener el subconjunto de una matriz en Java.

Utilice el método Arrays.copyOf() para obtener el subconjunto de una matriz

Arrays.copyOf() es un método incorporado en Java Util, que copia una matriz especificada a otra matriz del tipo especificado. Este método puede obtener el subconjunto de un arreglo, pero no funcionará si el subarreglo comienza en un índice que no sea el primer índice.

Ejemplo:

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));
  }
}

El código anterior copiará un subconjunto de la matriz dada desde el índice de inicio al End_index dado.

Producción :

[Delftstack1, Delftstack2, Delftstack3, Delftstack4, Delftstack5]

Utilice el método Arrays.copyOfRange() para obtener el subconjunto de una matriz

El método Arrays.copyOfRange() se usa para copiar un subconjunto de una matriz con índices iniciales y finales dados. Copiará el subconjunto a otra matriz.

Ejemplo:

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));
  }
}

Producción :

[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]

Use el método Stream.IntStream de Java 8 para obtener el subconjunto de una matriz

También podemos usar Java Stream para obtener el subconjunto de una matriz. Obtendrá una secuencia de elementos entre el rango especificado y la colocará en una matriz.

Ejemplo:

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));
  }
}

Producción :

[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]

Utilice el método System.arraycopy() para obtener el subconjunto de una matriz

El método System.arraycopy() puede copiar un subconjunto de una matriz con índices iniciales y finales dados. Copiará el subconjunto a otra matriz.

Ejemplo:

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() funciona de manera similar a Arrays.copyOfRange(). Copiará un subconjunto de una matriz dentro de un rango específico.

Producción :

[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]

Use Apache Commons Lang para obtener el subconjunto de una matriz

La clase ArrayUtils proporciona la funcionalidad para obtener un subconjunto de una matriz utilizando el método subarray(). Este método devuelve un objeto con el rango de elementos especificado.

Ejemplo:

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));
  }
}

Producción :

[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]

Use la conversión de lista para obtener el subconjunto de una matriz

Este método convierte una matriz en una lista y utiliza el método subList() para obtener un subconjunto de una matriz dentro del rango especificado y copiarlo en otra matriz.

Ejemplo:

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));
  }
}

Producción :

[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]

Use el método personalizado para obtener el subconjunto de una matriz

Escribamos nuestro método para obtener el subconjunto de una matriz. Podemos usar el bucle for para obtener el subconjunto de una matriz dentro del rango especificado.

Ejemplo:

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));
  }
}

Producción :

[Delftstack3, Delftstack4, Delftstack5, Delftstack6, Delftstack7]
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

Artículo relacionado - Java Array