Si se va a filtrar esta corriente, para tener solo palabras cuya longitud es más de cinco caracteres, entonces el resultado sería:
lápiz, habitual, gente, forestalOtro ejemplo de una transmisión es:
Perro, murciélago, nulo, campo, país, nulo, superposiciónSi esta secuencia se filtra para que los valores nulos no estén presentes, entonces el resultado sería:
perro, murciélago, campo, país, superposiciónOtro ejemplo más de una transmisión es:
1, 2, 3, 4, 5, 6, 7, 8Si esta secuencia se filtra para que el resultado no tenga ningún número menor o igual a 5, entonces el resultado sería:
6, 7, 8Una transmisión es una secuencia de elementos. La fuente de la transmisión puede ser una matriz, una colección o entrada del disco o red duro. Filtrar una corriente significa eliminar ciertos elementos según algunos criterios. Dichos criterios, cuando se codifican, es una función, y se llama un predicado.
Contenido del artículo
Predicado
Un predicado es una función que da como resultado verdadero o falso. Para la corriente,
lápiz, tinta, habitual, gente, gato, pastel, forestalEl predicado del filtro tiene solo palabras cuya longitud es mayor de 5, puede ser:
palabra -> palabra.longitud ()> 5La palabra es una variable ficticia y representa cada palabra en el flujo. Una función como esta, con la flecha ->, se llama expresión de lambda. Esta función se interpreta como palabras cuyas longitudes son mayores de 5. El método de longitud de una clase de cadena devuelve la longitud de la cadena.
Las palabras se leen uno por uno, y para cada caso, si la longitud de la palabra es mayor que 5, toda esa expresión (de "palabra" a 5) daría como resultado verdadero; de lo contrario, toda la expresión daría lugar a falso.
Para la corriente,
Perro, murciélago, nulo, campo, país, nulo, superposiciónEl predicado del filtro para tener palabras no nulas puede ser:
palabra -> palabra != nuloEsta expresión significa que la palabra abordada no es nula.
Para la corriente de enteros,
1, 2, 3, 4, 5, 6, 7, 8El predicado del filtro, no tener ningún número menor o igual a 5, es:
número -> número> = 6donde el número se refiere a cada número (a su vez). Esto significa que cualquier número elegido debe ser mayor o igual a 6.
Al filtrar elementos de una transmisión, no solo la codificación de predicado tiene que saber el programador. El programador también tiene que saber qué estructuras producen una corriente y cómo se produce una corriente. La matriz o la colección es una fuente de flujo. No olvide que las operaciones de entrada/salida de la computadora también pueden producir una secuencia; Sin embargo, este artículo no aborda esto.
Algunas estructuras productoras de flujo
Formación
Las matrices son una clase destinada a manejar matrices. Los métodos de matrices toman una matriz real como uno de sus argumentos. Las matrices, como clase, tienen el siguiente método:
estática públicaEste es un método estático, lo que significa que el objeto de matrices no está instanciado. Este método devuelve una lista. La lista puede considerarse como una transmisión sin filtro o filtrada, pero no es una corriente verdadera. Por ejemplo, en la siguiente declaración, LST producido a partir de una fuente sin procesar de enteros es como una corriente sin filtro:
ListaEl objeto de la lista tiene un método para producir una transmisión sin filtro con los mismos elementos de lista, pero como flujo: ver a continuación.
Recopilación
Ejemplos de colecciones son ArrayList y Vector. La lista en sí es una colección de propósito general.
Lista de arreglo
ArrayList, como clase, tiene el siguiente método:
transmisión predeterminadaEste método devuelve un objeto de transmisión. El siguiente segmento de código ilustra esto:
Lista de arregloStre es una corriente sin filtro.
Lista
La lista es en realidad una interfaz; no es una clase. Sin embargo, su objeto puede ser devuelto por el método de matrices estáticas, aslist (), como se muestra arriba. El objeto de lista tiene el método stream (), que es como el del objeto ArrayList. El siguiente segmento de código muestra cómo el objeto de lista puede devolver una secuencia:
VectorEl método de la lista aquí es devuelto por el método sublist () del vector.
Nota: La clase de matrices, la clase ArrayList, la clase Vector y la interfaz de la lista están en el Java.utilizar.* Paquete, que debe importarse. Sin embargo, la interfaz de transmisión está en el Java.utilizar.arroyo.* Paquete (minúscula 's'), que también debe importarse.
El método filtre ()
Entonces, una lista de matrices o un objeto de lista puede producir una secuencia utilizando sus métodos Stream (). ¿Qué puede producir un objeto de lista?? La clase de matrices y la clase vectorial pueden producir un objeto de lista. La clase de matrices usa su método aslist (), y la clase Vector usa su método Sublist ().
La transmisión es una interfaz y no una clase. El objeto de transmisión se devuelve mediante el método de transmisión del objeto de lista o el objeto ArrayList. El objeto de transmisión tiene el método filtre () para filtrar. Su argumento es el predicado. La nueva secuencia devuelta por el método de filtro es la secuencia filtrada.
El objeto de transmisión tiene muchos métodos. Dos de ellos son: count () y foreach (). El método Count () devuelve el número de elementos en la secuencia, y el método foreach () se utiliza para escanear los elementos de la secuencia.
El programa Java debería comenzar con:
importar java.utilizar.*;Filtrado para cuerdas mayores de una longitud
El siguiente código muestra cómo hacer esto:
VectorEl método foreach () tomó una función lambda, de la cual esta vez, no es un predicado. La salida filtrada es:
Lápiz ForestaciónFiltrando los valores nulos
El siguiente código muestra cómo se puede hacer:
Lista de arregloLa salida es:
Dog Bat Field Country SuperpositionFiltrado para enteros más grandes
El siguiente código ilustra esto:
ListaLa salida es:
6 7 8Conclusión
La clase de matrices puede producir un objeto de lista con su método aslist (). La clase Vector puede producir un objeto de lista con su método Sublist (). La lista y los objetos ArrayList cada uno tiene el método stream (). El método de transmisión devuelve la transmisión sin filtro. El objeto de transmisión devuelto tiene el método Filter () que toma un predicado (criterios para el filtrado). El método de filtro devuelve la secuencia filtrada.