feed twitter facebook LinkedIn facebook

Java » Máximo y mínimo número de un conjunto

junio 26, 2007 por Víctor Cuervo 17 Comentarios Imprimir Imprimir

El objetivo de este ejemplo es solventar la necesidad de encontrar dentro de un conjunto el número mínimo y máximo del mismo.

Podríamos implementar un algoritmo donde recorriendo todos los elementos del conjunto fuésemos preguntando si el elemento es el más pequeño o es el más grande.

Si bien, vamos a apoyarnos en el framework Collection para llevar a cabo esta casuistica.

Dentro del framework Collection encontramos dos operaciones:

  • .min(conjunto), devuelve el mínimo elemento del conjunto.
  • .max(conjunto), devuelve el máximo elemento del conjunto.

Lo primero será el crear el conjunto e incluirle elementos:

Set hs = new HashSet();
hs.add(2);
hs.add(4);
hs.add(6);
hs.add(8);

El conjunto es representado por la clase Set, si bien la implementación es un HashSet. El método para añadir los elementos será .add(elemento).

Ahora solo nos quedará invocar a los métodos .max y .min:

System.out.println("El número mayor del conjunto es... "
    + Collections.max(hs));
System.out.println("El número menor del conjunto es... "
    + Collections.min(hs));

Invocando dichas operaciones nos olvidamos de cualquier implementación del algoritmo que calcule el mínimo y el máximo. Pero, nos surge una duda ¿Cómo saben estos métodos realizar la comparación entre los números? ¿Y si fuese otro tipo de datos?.

A la hora de utilizar dichas operaciones, el framework espera que los elementos de los cuales queremos saber su mínimo y máximo se les pueda aplicar la función compareTo. Clases como Integer, Float,... ya implementan dicha función.

No quiere decir que a elementos que no contengan esta función no se les pueda aplicar operaciones del framework Collections, ya que existe la posibilidad de implementar el interface Comparator para buscar una solución.

Visualizar el ejemplo | Descargar el código

tags: ,

Artículos relacionados:

17 comentarios »

RSS feed para los comentarios de esta entrada. TrackBack URI

1 2
  1. marula
    septiembre 27, 2007 #

    no entendi nada

  2. DARLING
    septiembre 28, 2007 #

    estamos a mano tampoco entendi NADA

  3. Mago y Puto de EPSS
    diciembre 20, 2007 #

    Buena, justo lo que bucaba, pero falta poner la libreria o si esta remarcarla.

  4. lineadecodigo
    diciembre 21, 2007 #

    Hola,

    Efectivamente en el ejemplo no se hace referencia a la librería. La librería a importar es java.util.

    El motivo por el cual no está es no hacer muy pesado el artículo. Si bien, el pecar de exceso puede hacer que no se entienda el ejemplo.

    De todas maneras se puede ver en el código disponible para descargar.

  5. angelica
    abril 22, 2008 #

    no entendi nada mas ejemplos no cren y menos blablabla

  6. maruja
    mayo 9, 2008 #

    no en ten diiiiiiiiiiiiiiiiiii!!

  7. MAYERLY
    julio 1, 2008 #

    POR QUE NO SE EXPLICAN MEJOR

  8. Jorge Luis
    julio 5, 2008 #

    ok ese metodo no lo conocia e incluso revisando en el api de java…. o talves no o encontre je je je je…
    Pero gracias por la informacion

  9. Mary
    septiembre 2, 2008 #

    hola quiesiera el codigo fuente en java sobre el determinar el el promedio de solo los numeros negativos ok si ayudenme con eso please

  10. Floria
    septiembre 11, 2008 #

    Hola Mary como estas?? mira no estoy segura si existe una funcion en la clase Math para calcular el promedio pero una forma podria ser crear una funcion asi

    //vector = {0, -65, 54.23, 3.14, 89, 75, 7,-25,78,-2.25};
    //esta funcion, por ejemplo retorna 30.75

    public double calcularPromedio(double[] vector)
    { int cont=0;
    double result = 0;

    for (int i = 0; i < vector.length; i++) {
    if(vector[i]< 0)
    { result+= vector[i];
    cont++;
    }
    }

    if(result != 0)
    return -result/cont;
    else
    return cont;
    }

    Espero te sirva … ya que es la primera vez que participo en un foro .. y no suelo ser muy clara para expresarme…suerte

1 2

Deja un comentario

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*