Google Guava

De Dos Ideas.
Revisión del 11:39 15 jul 2011 de Parivero (discusión | contribuciones) (== inline)
Saltar a: navegación, buscar

Google Guava es un proyecto de Google que reúne un conjunto de librerías usadas internamente dentro de Google para sus proyectos que emplean Java. El propósito de la librería es simplificar el código empleado para realizar tareas que son comunes dentro de Java y que no están soportadas por las librerías estándar, de esta manera busca eliminar código propenso a errores.

Maven

<dependency>

  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>r09</version>

</dependency>

Controlara última versión aquí.

Ejemplos

CharMatcher

Determina verdadero o falso para cualquier carácter java, también ofrece métodos básicos de tratamiento de texto.

And / Or

String input = "La fecha es : 01/01/2011"; CharMatcher charMatcher = CharMatcher.DIGIT.or(CharMatcher.is('/')); String output = charMatcher.retainFrom(input); System.out.println(output);

// Salida : 01/01/2011

Negate

String input = "MAYUSCULA minuscula"; CharMatcher charMatcher = CharMatcher.JAVA_LOWER_CASE.or(CharMatcher.WHITESPACE).negate(); String output = charMatcher.retainFrom(input); System.out.println(output);

// Salida: MAYUSCULA

inRange

String input = "Solo quedan los numeros 1, 2, 3, 4 que son menores a 5 "; CharMatcher charMatcher = CharMatcher.inRange('0', '4').or(CharMatcher.WHITESPACE); String output = charMatcher.retainFrom(input); System.out.println(output);

// Salida: 1 2 3 4

Joiner

Une fragmentos de texto mediante un separador. también ofrece métodos básicos de tratamiento de texto.

join

String[] nombres = {"Josefina", "Nacho", "Lali", "Coco"}; String output = Joiner.on(", ").join(nombres); System.out.println(output);

// Salida: Josefina, Nacho, Lali, Coco

skipNulls

String[] nombres = {null, "Josefina", null, "Nacho", null, "Lali", null, "Coco"}; String output = Joiner.on(", ").skipNulls().join(nombres); System.out.println(output);

// Salida: Josefina, Nacho, Lali, Coco

useForNull

String[] nombres = {null, "Josefina", null, "Nacho", null, "Lali", null, "Coco"}; String output = Joiner.on(", ").useForNull("n/a").join(nombres); System.out.println(output);

// Salida: n/a, Josefina, n/a, Nacho, n/a, Lali, n/a, Coco

withKeyValueSeparator

Map<Integer, String> map = newHashMap(); map.put(1, "Josefina"); map.put(2, "Nacho"); map.put(3, "Lali"); String output = Joiner.on(", ").withKeyValueSeparator(" -> ").join(map); System.out.println(output);

// Salida: 1 -> Josefina, 2 -> Nacho, 3 -> Lali

Splitter

Divide cadenas de texto en subcadenas mediante el reconocimiento de un separador (también conocido como delimitador), este se puede definir mediante un carácter, una cadena literal, una expresión regular, un CharMatcher, o mediante el uso de una longitud fija.

Split

Split retorna una instancia de Iterable en lugar de un Array.

String input = "Josefina|Nacho|Lali"; Iterable<String> split = Splitter.on("|").split(input); List<String> output = newArrayList(split); System.out.println(output);

// Salida: [Josefina, Nacho, Lali]

fixedLength

String input ="Josefina Nacho Lali "; Iterable<String> splitted = Splitter.fixedLength(10).trimResults().split(input); List<String> output = newArrayList(splitted); System.out.println(output);

//Salida: [Josefina, Nacho, Lali]

onPattern

String input ="Josefina Nacho Lali"; Iterable<String> splitted =

           Splitter.onPattern("[a-z&&[aeiou]]").omitEmptyStrings().split(input);

List<String> output = newArrayList(splitted); System.out.println(output);

// Salida: [J, s, f, n, N, ch, L, l]

Collection2

Proporciona métodos estáticos para trabajar con colecciones.

filter

List<String> input = newArrayList("Josefina","Nacho","lali"); Collection<String> output =

    Collections2.filter(input, new Predicate<String>() {
               public boolean apply(String t) {
                   if (t.contains("i")) {
                       return true;
                   }
                   return false;
               }
           });
           

System.out.println(output);

// Salida: [Josefina, lali]

transform

List<String> input = newArrayList("Josefina", "Nacho", "lali"); Collection<String> output =

    Collections2.transform(input, new Function<String, String>() {
           public String apply(String f) {
               return f.replaceAll("fina","");
           }
       });

System.out.println(output);

// Salida: [Jose, Nacho, lali]

Multimap

Basicamente es un map en el que se pueden asignar muchos valores a una sola clave.

Multimap<Integer, String> output = HashMultimap.create();

       output.put(1, "Josefina");
       output.put(2, "nacho");
       output.put(3, "Lali");
       output.put(1, "Josefina_2"); 

System.out.println(output);

// Salida: {1=[Josefina, Josefina_2], 2=[Bacho], 3=[lali]}

ImmutableSetMultimap

inline

Multimap<Integer, String> output = ImmutableSetMultimap.of(1, "Josefina", 2, "Bacho", 3, "lali", 1, "Josefina_2"); System.out.println(output);

// Salida: {1=[Josefina, Josefina_2], 2=[Bacho], 3=[lali]}

Builder

Multimap<Integer, String> output =

               new ImmutableSetMultimap.Builder<Integer, String>()
                   .put(1, "Josefina")
                   .put(2, "Nacho")
                   .put(3, "lali")
                   .put(1, "Josefina_2")
                   .build();

System.out.println(output);

// Salida: {1=[Josefina, Josefina_2], 2=[Bacho], 3=[lali]}