Dada una array primitiva, la tarea es obtener una porción de esta array en Java, utilizando el índice inicial y final.
Ejemplos:
Input: arr[] = {1, 2, 3, 4, 5}, startIndex = 2, endIndex = 4 Output: {3, 4, 5} Input: arr[] = {1, 2, 3, 4, 5}, startIndex = 0, endIndex = 1 Output: {1, 2}
- Método 1 : método ingenuo.
- Obtenga el Array y el startIndex y el endIndex.
- Crear y vaciar una array primitiva de tamaño endIndex-startIndex.
- Copie los elementos de startIndex a endIndex de la array original a la array de sectores.
- Devuelve o imprime la porción de la array.
A continuación se muestra la implementación del enfoque anterior:
// Java program to Get a Slice
// of a Primitive Array
import
java.util.Arrays;
class
GFG {
// Function to get slice of a primitive array in Java
public
static
int
[] getSliceOfArray(
int
[] arr,
int
start,
int
end)
{
// Get the slice of the Array
int
[] slice =
new
int
[end - start];
// Copy elements of arr to slice
for
(
int
i =
0
; i < slice.length; i++) {
slice[i] = arr[start + i];
}
// return the slice
return
slice;
}
public
static
void
main(String[] args)
{
// Get the array, startIndex and endIndex
int
[] arr = {
1
,
2
,
3
,
4
,
5
};
int
start =
2
, end =
4
;
// Get the slice of the array
int
[] slice = getSliceOfArray(arr, start, end +
1
);
// Print the slice of the array
System.out.println(Arrays.toString(slice));
}
}
Producción:[3, 4, 5]
- Método 2 : Usar el método Arrays.copyOfRange() .
- Obtenga el Array y el startIndex y el endIndex.
- Obtenga el segmento usando el método Arrays.copyOfRange().
- Devuelve o imprime la porción de la array.
A continuación se muestra la implementación del enfoque anterior:
// Java program to Get a Slice
// of a Primitive Array
import
java.util.Arrays;
class
GFG {
// Function to get slice of a primitive array in Java
public
static
int
[] getSliceOfArray(
int
[] arr,
int
startIndex,
int
endIndex)
{
// Get the slice of the Array
int
[] slice = Arrays
.copyOfRange(
// Source
arr,
// The Start index
startIndex,
// The end index
endIndex);
// return the slice
return
slice;
}
public
static
void
main(String[] args)
{
// Get the array, startIndex and endIndex
int
[] arr = {
1
,
2
,
3
,
4
,
5
};
int
start =
2
, end =
4
;
// Get the slice of the array
int
[] slice = getSliceOfArray(arr, start, end +
1
);
// Print the slice of the array
System.out.println(Arrays.toString(slice));
}
}
Producción:[3, 4, 5]
- Método 3 : Uso de flujos de Java 8
- Obtenga el Array y el startIndex y el endIndex.
- Convierta el rango especificado de elementos de startIndex a endIndex a Primitive Stream usando el método range().
- Asigne los elementos especificados de la array original utilizando el método map().
- Convierta la array asignada en una array utilizando el método toArray().
- Devuelve o imprime la porción de la array.
A continuación se muestra la implementación del enfoque anterior:
// Java program to Get a Slice
// of a Primitive Array
import
java.util.Arrays;
import
java.util.stream.IntStream;
class
GFG {
// Function to get slice of a primitive array in Java
public
static
int
[] getSliceOfArray(
int
[] arr,
int
startIndex,
int
endIndex)
{
// Get the slice of the Array
int
[] slice = IntStream
// Convert the specified elements
// of array into IntStream
.range(startIndex, endIndex)
// Lambda expression to get
// the elements of IntStream
.map(i -> arr[i])
// Convert the mapped elements
// into the slice array
.toArray();
// return the slice
return
slice;
}
public
static
void
main(String[] args)
{
// Get the array, startIndex and endIndex
int
[] arr = {
1
,
2
,
3
,
4
,
5
};
int
start =
2
, end =
4
;
// Get the slice of the array
int
[] slice = getSliceOfArray(arr, start, end +
1
);
// Print the slice of the array
System.out.println(Arrays.toString(slice));
}
}
Producción:[3, 4, 5]
Publicación traducida automáticamente
Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA