Entradas

Operaciones con colecciones III: Operadores plus y minus

Imagen
Continuando la serie dedicada a las funciones para realizar operaciones sobre colecciones , en esta entrada vamos a ver cómo utilizar los operadores plus (+) y minus (-) para trabajar con colecciones y concretamente para realizar operaciones de adición y sustracción con ellas. Estos operadores toman una colección como primer operando y otra colección o un elemento de una colección como segundo operando, y en base a ellos devuelven una nueva colección de solo lectura . El operador plus devuelve como resultado una nueva colección que contiene tanto los elementos de la colección original como del segundo operando, mientras que el resultado del operador minus contiene los elementos de la colección original excepto los elementos del segundo operando (si este segundo operando es un elemento, se elimina su primera aparición en el resultado, y si se trata de una colección se eliminan todas las apariciones de sus elementos en la nueva colección resultante). // List<Int> val ...

Lectura y escritura de archivos

Imagen
Anteriormente, cuando nos referimos a la biblioteca estándar de Kotlin para trabajar con flujos de entrada y salida ( Input/Output ), nos centramos en la transferencia de datos en consola , y ahora vamos a ver cómo trabajar con archivos , y concretamente algunas maneras para leer y escribir sobre ellos. Lectura de archivos Antes de entrar en materia, lógicamente necesitamos un archivo para leer; si estamos trabajando con IntelliJ IDEA , podemos crear desde allí un nuevo directorio y crear nuestro archivo de pruebas. Para tener nuestro proyecto ordenado, es habitual llamar a este directorio resources (recursos) y crear dentro de él otros directorios para, por ejemplo, contener imágenes o archivos de texto del proyecto. Para eso, nos situamos sobre la carpeta principal del proyecto y con el botón secundario del ratón seleccionamos New --> Directory : En la siguiente ventana le asignamos un nombre, en este caso, ' resources ' (opcionalmente también podemos marcar est...

Operaciones con colecciones II: Filtrado

Imagen
Siguiendo con la serie dedicada a las funciones para realizar operaciones sobre colecciones , en esta entrada nos centramos en una de las operaciones más usadas para trabajar con colecciones, las operaciones de filtrado . La biblioteca estándar contiene un grupo de funciones de extensión que permiten filtrar rápidamente ciertos elementos de una colección. Estas funciones no modifican la colección original, por lo que están disponibles tanto para colecciones mutables como de solo lectura. Normalmente para operar con el resultado del filtrado, éste se debe asignar a una variable. En Kotlin, las condiciones de filtrado se definen mediante predicados : funciones lambda que toman el elemento de una colección y devuelven un valor booleano, donde true significa que el elemento dado coincide con el predicado y false lo contrario. La función básica de filtrado es filter() . Cuando se llama con un predicado, filter() devuelve los elementos de la colección que coinciden. Tanto para la...

Operaciones con colecciones I: Operaciones de transformación

Imagen
Como ya adelantamos en la entrada sobre construcción de colecciones , la biblioteca estándar de Kotlin ofrece una amplia variedad de funciones para realizar ciertas operaciones sobre colecciones , incluyendo operaciones simples como obtener y agregar elementos y otras más complejas que incluyen búsqueda, clasificación, filtrado y transformación. En general, y salvo que se indique lo contrario, estas operaciones están disponibles tanto para colecciones de solo lectura como mutables, y se pueden agrupar en estas categorías: Transformaciones Filtrado Operadores plus y minus Agrupamiento Extraer partes de una colección Recuperar elementos Orden Valores de agrupación Operaciones de escritura (para colecciones mutables) La mayoría de estas operaciones (salvo las de escritura) devuelven sus resultados sin afectar a la colección original, por lo que es habitual almacenar sus resultados en variables. Por ejemplo, la siguiente operación de filtrado produce una nueva colección qu...

Recorriendo colecciones

Imagen
Para recorrer los elementos de una colección , la biblioteca estándar de Kotlin admite el mecanismo de iteración de la interface Iterator que proporciona acceso a los elementos de forma secuencial, lo que resulta útil cuando se necesita procesar, uno por uno, todos los elementos para, por ejemplo, obtener sus valores u operar con cada uno de ellos. En general un iterador se aplica sobre una colección, u otro objeto que se pueda representar como una secuencia de elementos, para acceder de forma secuencial a sus elementos. Llamando a la función iterator() se pueden obtener iteradores en todos los herederos de la interface Iterable , entre los que se incluyen List y Set . Por tanto, todas las clases que heredan de esta interfaz pueden representarse como una secuencia de elementos sobre los que se puede iterar. Una vez que se obtiene un iterador, éste apunta al primer elemento de la colección y la función next() devuelve este elemento y mueve la posición del iterador al siguien...