Tecnologías Java

A la hora de programar hay que tener presente que herramientas nos brinda el lenguaje que puedan facilitarnos el trabajo al mismo tiempo que mejora la calidad de nuestra solución.

Todas estas herramientas tienen una razón para existir. Son diseñadas para resolver una situación particular de la mejor manera posible.

A continuación les presentamos algunas herramientas básicas que podremos encontrar en Java.

Iteradores (Iterator)

For each

No solo es una mejora para recorrer los elementos de una estructura de forma mas simple sino que también es mas eficiente porque la forma de recorrerlo es similar a la de los iteradores.

Por ejemplo, si se quiere recorrer los elementos dentro de una lista enlazada sería del siguiente modo:

for ( int i = 0; i<lista.size(); i++) System.out.println(lista.get(i));

Al hacer lista.get(i) como es una lista enlazada se deben visitar todos los elementos anteriores. Es decir que para acceder al primer elemento se visita un nodo. para ir al segundo se visitan 2 nodos. para el tercero se vicitan 3… así sucesivamente hasta que se llegue al ultimo elemento. Como vimos en la sección de complejidad, esta ejecucion incremental de instrucciones se puede modelar con la sumatoria de gauss. Como resultado, esta forma de recorrer la lista tiene O(n2).

Por otro lado, si utilizamos for each obtendremos un codigo mas sintetico y entendible. También, el acceder al siguiente elemento se resuelve en O(1) del mismo modo que pasaba con Iteradores como consecuencia, la complejidad de recorrer la lista seá O(n).

for (String elemento: lista ) System.out.println(elemento); }

String Builder

Mejora la manipulación de Cadenas de texto.

El tipo de dato String es inmutable, es decir que no se puede modificar. Entonces, cuando se usa el operador “+” (más) para concatenar Strings lo que estamos haciendo es crear un nuevo String con toda la información. Esto se debe a que los Strings funcionan como arreglos estáticos. Cuando se quieren agregar elementos a un arreglo estático lleno, hay que crear un nuevo arreglo estático con el tamaño final y luego pasar la información.

LocalDate

Facilita el trabajo con fechas.