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

26/jun/2007 Java , , , , 18 Comentarios
java

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:

  1. Set<Integer> hs = new HashSet<Integer>();
  2. hs.add(2);
  3. hs.add(4);
  4. hs.add(6);
  5. 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:

  1. System.out.println("El número mayor del conjunto es... "
  2. + Collections.max(hs));
  3. System.out.println("El número menor del conjunto es... "
  4. + 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.

Vídeos sobre Java

Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

18 comentarios en “Máximo y mínimo número de un conjunto”

Víctor Cuervo

omar

Exelente opcion, justo lo que buscaba para hayar los maximos, en internet hay muchos codigos pero
este es el mas cencillo

Víctor Cuervo

misael

mae ta resa graxias tenes 10

Víctor Cuervo

steven

Como hago para saber si un triangulo es un triangulo rectangulo o no???
Y como averiguo el area del triangulo si yo solicito que introduzcan los datos pero no se cual es la altura???

Víctor Cuervo

laura esponja

HOLA POR FA AYUDENMEN CON ESTE PROBLEMA COMO Y QUE FUNCIONES INVOCO EN ESTE PLANTEAMIENTO PROGAMADO EN EN JAVA SCRIPT

Cinco miembros de un club contra la obesidad desean saber cuanto han bajado o subido de peso desde la ultima
vez que se reunieron. Para esto se debe realizar un ritual de pesaje en donde cada uno se pesa en diez básculas
distintas para así tener el promedio mas exacto de su peso. Si existe diferencia positiva entre este promedio de
peso y el peso de la ultima vez que se reunieron, significa que subieron de peso. Pero si la diferencia es
negativa, significa que bajaron. Lo que el problema requiere es que por cada persona se imprima un letrero
que diga: “SUBIO” o “BAJO” y la cantidad de kilos que subió o bajo de peso.

Víctor Cuervo

manne

Desarrolle un programa que permita leer dos números y ordenarlos de menor a mayor, si es el caso.

Víctor Cuervo

julian abadia mafla

me parecio muy bacan el que hizo esta pagina muy chevere

Víctor Cuervo

Alejandro

Me parecio muy vacana su explicacion. Pero quisiera saber si en el Collections no hay una funcion para hacer operaciones entre dos conjuntos con n elementos.
Gracias al q pueda alludarme rapido.

Víctor Cuervo

Floria

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

Víctor Cuervo

Mary

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

Víctor Cuervo

Jorge Luis

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

Víctor Cuervo

MAYERLY

POR QUE NO SE EXPLICAN MEJOR

Víctor Cuervo

maruja

no en ten diiiiiiiiiiiiiiiiiii!!

Víctor Cuervo

angelica

no entendi nada mas ejemplos no cren y menos blablabla

Víctor Cuervo

lineadecodigo

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.

Víctor Cuervo

Mago y Puto de EPSS

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

Víctor Cuervo

DARLING

estamos a mano tampoco entendi NADA

Víctor Cuervo

marula

no entendi nada

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*


*