Imprimir
Categoría: Java
Visto: 2767

En PC Resumen vamos a hablar de los algoritmos binarySearch, addAll, frequency y disjoint en Java.

Algoritmo binarySearch

Este algoritmo es un método estático de la clase Collections. El algoritmo realiza la búsqueda en un objeto List. Funciona igual que lo que vimos en el artículo La clase Array en Java, pero también tiene una versión sobrecargada que recibe un objeto Comparator como tercer argumento, el cual especifica cómo se deben comparar los elementos.

Algoritmos addAll, frequency y disjoint

El algoritmo addAll recibe dos argumentos: un objeto Collection en el que se insertarán los elementos y una tabla que proporciona los elementos a insertar. El algoritmo frequency recibe dos argumentos: un objeto Collection donde buscar y un Object que se debe buscar. Este método devuelve el número de veces que aparece este objeto en la colección. El algoritmo disjoint recibe dos objetos Collection y devuelve cierto si no tienen ningún elemento en común.

En el programa siguiente muestra la utilización de estos tres métodos:

import java.util.List;
import java.util.Vector;
import java.util.Arrays;
import java.util.Collections;

public class Algoritmos2 {
    private String[] colores = {"rojo", "blanco", "amarillo", "azul"};
    private List<String> lista;
    private Vector<String> vector = new Vector<String>();

    public Algoritmos2() {
        lista = Arrays.asList(colores);
        vector.add("negro");
        vector.add("rojo");
        vector.add("verde");
        System.out.println("Antes de addAll, el vector contiene:");
        for (String s: vector) {
            System.out.printf ("%s", s);
        }
        Collections.addAll(vector, colores);
        System.out.println("\n \nDespués de addAll, el vector contiene:");
        for (String s: vector) {
            System.out.printf ("%s", s);
        }
        int frecuencia = Collections.frequency(vector, "rojo");
        System.out.printf("\n \nFrecuencia de rojo en el vector: %d \n", frecuencia);
        boolean desunion = Collections.disjoint(lista, vector);
        System.out.printf("\nlista y vector %s elementos en común \n",(desunion ? "No tienen": "tienen"));
    }

    public static void main(String args[]) {
        new Algoritmos2();
    }
}