Anuncios

Bienvenidos sean a este post, hoy veremos una subclase derivada de HashTable la cual se encarga de mantener listas en la cual la clave es de tipo cadena (String) y el valor tambien, esta clase a su vez es utilizada por otras clases como por ejemplo System.getProperties() cuando obtiene valores del entorno.

Anuncios

Esta clase define la siguiente variable de instancia, la cual a su vez contiene la lista de propiedad por defecto asociado con el objeto Properties:

Properties defaults;

Tendremos estos dos tipos de constructores:

  • Properties(), crea un objeto de tipo Properties sin valores por defecto
  • Properties(Properties propDefault), crea un objeto Properties con los valores por defecto informados.
Anuncios

En cualquiera de los dos casos la lista que se crea esta vacia, pasemos a ver algunos metodos disponibles:

  • String getProperty(String clave), devuelve el valor asociado a una clave, devuelve valor null si no existe en la lista o en las propiedades por defecto
  • String getProperty(String clave, String defaultProp), igual al anterior pero la diferencia radica cuando no encuentra la clave donde devuelve defaultProp en lugar de un valor null
  • void list(PrintStream streamOut), envia la lista de propiedad al stream de salida informado via streamOut
  • void list(PrintWriter streamOut), es exactamente igual al metodo anterior
  • void load(InputStream streamIn) throws IOException, ingresa una lista de propiedad desde el stream de entrada informado en streamIn
  • Enumeration propertyNames(), devuelve una enumeracion de las claves e incluye las claves de la lista de propiedades por defecto
  • Object setProperty(String clave, String valor), asocia el valor con la clave, devuelve el valor previo asociado con la clave y en caso contrario devuelve un valor nulo
  • void store(OutputStream streamOut, String descripcion), despues de escribir la cadena especificada por descripcion, la lista de propiedad es escrita al stream de salida informada en los atributos
Anuncios

Pasemos a ver un ejemplo donde aplicaremos alguno de los metodos antes descriptos:

PropDemo.java:

import java.util.*;

public class PropDemo
{
        public static void main(String[] args)
        {
                Properties capitales = new Properties();
                Set provincias;
                String cdn;

                capitales.put("Buenos Aires","La Plata");
                capitales.put("Cordoba","Cordoba");
                capitales.put("San Luis","San Luis");
                capitales.put("Mendoza","Mendoza");
                capitales.put("Chaco","Resistencia");

                provincias = capitales.keySet();
                Iterator itr = provincias.iterator();

                while(itr.hasNext())
                {
                        cdn = (String) itr.next();
                        System.out.println("La capital de " + cdn + " es "
                                + capitales.getProperty(cdn) + ".");
                }

                System.out.println();

                cdn = capitales.getProperty("Santa Fe","No encontrado");
                System.out.println("La capital de Santa Fe es " + cdn + ".");
        }
}
Anuncios

En este ejemplo primero crearemos el objeto de la clase Properties, luego un variable de tipo Set llamada provincias y por ultimo una de tipo cadena llamada cdn, despues por medio de put() ingresaremos como clave el nombre de la provincia y como valor el nombre de su capital, esto la haremos con cinco provincias de mi pais, Argentina, pueden modificarlas si quieren por otras sino utilicen las propuestas, despues a provincias le asignaremos los valores de las claves ingresadas en capitales para luego crear un iterator sobre la variable recien rellenada, mas adelante en este post hablaremos sobre iterator, nuestro siguiente paso es un bucle while donde mirara al iterator y chequeara por el siguiente elemento y mientras sea verdadero ejecutara las instrucciones dentro del mismo, las cuales son asignar a cdn el valor del proximo elemento para despues mostrar el mensaje donde primero mostrara el nombre de la provincia y luego por medio de getProperty() y el nombre de la provincia obtendra la capital asignada y por ultimo utilizaremos un getProperty() para que busque una clave y en caso de no encontrarla nos devolvera el mensaje “No encontrado”, para ultimo mostrar si encontro o no el valor de la clave informada, probemos de compilarlo y ejecutarlo para ver su salida:

tinchicus@dbn001vrt:~/programacion/java/codigo$ java PropDemo
La capital de Mendoza es Mendoza.
La capital de Chaco es Resistencia.
La capital de Cordoba es Cordoba.
La capital de Buenos Aires es La Plata.
La capital de San Luis es San Luis.

La capital de Santa Fe es No encontrado.
tinchicus@dbn001vrt:~/programacion/java/codigo$
Anuncios

Como pueden ver funciono correctamente tanto en la busqueda de los elementos agregados a la lista y por ultimo como funciona cuando no encuentra la busqueda y le asignamos un valor a devolver.

Anuncios

Hablemos un poco sobre Iterator, en una forma muy basica es similar al foreach() es decir nos da la posibilidad de hacer un for por cada elemento dentro de una variable de tipo array o vector, a su vez iterator nos da la posibilidad del objeto creado ser utilizado en while por medio de hasNext y comprobar a cada uno de nuestros elementos, hablaremos sobre esto mas adelante.

Anuncios

En resumen, hoy hemos visto que es y como funciona Properties, cuales son sus constructores, sus metodos, un ejemplo de como utilizarlo, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00