Dada una secuencia que contiene algunos elementos, la tarea es obtener el último elemento de la secuencia en Java .
Ejemplo:
Entrada: Corriente={“Geek_First”, “Geek_2”, “Geek_3”, “Geek_4”, “Geek_Last”}
Salida: Geek_LastEntrada: Corriente={1, 2, 3, 4, 5, 6, 7}
Salida: 7
Hay muchos métodos para encontrar los últimos elementos en un Stream :
- Uso del método Stream.reduce() : El método reduce funciona en dos elementos de la secuencia y devuelve el elemento según la condición requerida. Por lo tanto, este método se puede utilizar para reducir el flujo de modo que contenga solo el último elemento.
Acercarse:
- Obtenga la secuencia de elementos en la que se devolverá el primer elemento.
- Para obtener el último elemento, puede usar el método reduce() para ignorar el primer elemento, repetidamente, hasta que no haya ningún primer elemento.
Stream.reduce((first, second) -> second)
- Esto reduce el conjunto de elementos en un Stream a un solo elemento, que es el último .
- Por lo tanto, el único elemento único permanecerá en la corriente, que es el último elemento.
A continuación se muestra la implementación del enfoque anterior:
Ejemplo:// Java program to find last
// element of a Stream in Java
import
java.util.*;
import
java.util.stream.*;
public
class
GFG {
// Function to find the
// last_elements in a Stream
public
static
<T> T
lastElementInStream(Stream<T> stream)
{
T last_element
= stream
// reduce() method reduces the Stream
// to a single element, which is last.
.reduce((first, second) -> second)
// if stream is empty
// null is returned
.orElse(
null
);
return
last_element;
}
// Driver code
public
static
void
main(String[] args)
{
Stream<String> stream
= Stream.of(
"Geek_First"
,
"Geek_2"
,
"Geek_3"
,
"Geek_4"
,
"Geek_Last"
);
// Print the last element of a Stream
System.out.println(
"Last Element: "
+ lastElementInStream(stream));
}
}
Producción:Last Element: Geek_Last
- Uso del método Stream skip() : El método skip() devuelve un flujo después de eliminar los primeros N elementos. Por lo tanto, este método se puede utilizar para omitir los elementos excepto el último.
Acercarse:
- Obtiene la secuencia de elementos en la que se devolverá el último elemento.
- Para obtener el último elemento, puede usar el método skip() junto con el método count() .
Stream.skip(stream.count()-1)
- Esto devuelve una secuencia después de eliminar los elementos first size()-1 , lo que da como resultado una secuencia de un solo elemento.
- Este método es seguido por el método findFirst() , que devuelve el primer elemento que en realidad es el último elemento del flujo original.
A continuación se muestra la implementación del enfoque anterior:
Ejemplo:// Java program to find last
// element of a Stream in Java
import
java.util.*;
import
java.util.stream.*;
public
class
GFG {
// Function to find the
// last_elements in a Stream
public
static
<T> T
lastElementInStream(Stream<T> stream,
int
N)
{
T last_element
= stream
// This returns a stream after
// removing first N-1 elements
// resultant stream will contain
// only single element
.skip(N -
1
)
// findFirst() method return
// the first element of
// newly generated stream
.findFirst()
// if stream is empty
// null is returned
.orElse(
null
);
return
last_element;
}
// Driver code
public
static
void
main(String[] args)
{
Stream<String> stream
= Stream.of(
"Geek_First"
,
"Geek_2"
,
"Geek_3"
,
"Geek_4"
,
"Geek_Last"
);
int
N =
5
;
// Print the last element of a Stream
System.out.println(
"Last Element: "
+ lastElementInStream(stream, N));
}
}
Producción:Last Element: Geek_Last
- Encuentre el primer elemento de la corriente inversa :
Acercarse:
- Obtenga la secuencia de elementos en la que se devolverá el primer elemento.
- Para obtener el primer elemento, primero debe invertir la corriente . La inversión se puede hacer como:
stream.sorted(Collections.reverseOrder())
- Este método es seguido por el método findFirst() , que devuelve el primer elemento del flujo inverso.
- De ahí se obtiene el primer elemento del flujo original.
A continuación se muestra la implementación del enfoque anterior:
Ejemplo:// Java program to find last
// element of a Stream in Java
import
java.util.*;
import
java.util.stream.*;
public
class
GFG {
// Function to find the
// last_elements in a Stream
public
static
<T> T
lastElementInStream(Stream<T> stream)
{
T last_element
= stream
// sorted(Collections.reverseOrder())
// is used to reverse the element of the stream
.sorted(Collections.reverseOrder())
// findFirst() method return
// the first element of reversed stream
// which is the last element of the stream
.findFirst()
// if stream is empty
// null is returned
.orElse(
null
);
return
last_element;
}
// Driver code
public
static
void
main(String[] args)
{
Stream<String> stream
= Stream.of(
"Geek_First"
,
"Geek_2"
,
"Geek_3"
,
"Geek_4"
,
"Geek_Last"
);
// Print the last element of a Stream
System.out.println(
"Last Element: "
+ lastElementInStream(stream));
}
}
Producción:Last Element: Geek_Last
Publicación traducida automáticamente
Artículo escrito por SHUBHAMSINGH10 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA