Estoy creando un código en el que se introducen datos de animales en un ArrayList, y luego, manejar dichos datos.
Quiero crear un método que muestre el animal más pesado del registro, pero lo que consigo es que hasta que encuentre el animal más pesado, va mostrando los que son más pesados que el siguiente.
Código del método en cuestión:
Código Java:
Ver originalpublic static void comparaPeso
(ArrayList <Animal
> Bestario
) {
int i=0,j=1;
while (it.hasNext())
{
it.next();
if ((Bestario.get(i).peso)>(Bestario.get(j).peso))
{
j++;
System.
out.
println( "Nombre: " +Bestario.
get(i
).
nombre +"\n"+ "Pais: " +Bestario.get(i).pais +"\n"+
"Peso: " +Bestario.get(i).peso +"\n"+
"Edad: " +Bestario.get(i).edad +"\n\n");
}
else
{
System.
out.
println( "Nombre: " +Bestario.
get(j
).
nombre +"\n"+ "Pais: " +Bestario.get(j).pais +"\n"+
"Peso: " +Bestario.get(j).peso +"\n"+
"Edad: " +Bestario.get(j).edad +"\n\n");
}
i++;
}
}
Códigos completos del resto de clases:
Aplicación
Código Java:
Ver original/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package zoo;
import java.util.ArrayList;
import java.util.Scanner;
/**
*
* @author Joan
*/
public class Aplicacion {
/**
* @param args the command line arguments
*/
public static void main
(String[] args
) { Scanner teclado
=new Scanner
(System.
in);
Zoologico zoo= new Zoologico();
ArrayList <Animal
> Bestario
=new ArrayList
<Animal
>();
int op=-1, edad;
double peso;
/*--------MENU--------*/
while (op!=0)
{
do{
System.
out.
println("\n"+" MENU "); verMenu();
op=teclado.nextInt();
switch(op){
case 1: zoo.anyadeAnimal(Bestario);
break;
case 2: zoo.mostrarAnimales(Bestario);
break;
case 3: zoo.comparaPeso(Bestario);
break;
case 4: ;
break;
case 0: System.
out.
println("Se ha cerrado el programa."); break;
default: System.
out.
println("Error" ); break;
}
}while(op!=0);
}
}
public static void verMenu(){
System.
out.
println("1.Añadir Animal."); System.
out.
println("2.Mostrar Animales."); System.
out.
println("3.Mostrar Animal más pesado."); System.
out.
println("0.Salir");
}
}
Animal
Código Java:
Ver original/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package zoo;
/**
*
* @author User
*/
public class Animal {
double peso;
int edad;
public Animal(){
this.nombre="";
this.pais="";
this.peso=0.00;
this.edad=0;
}
public Animal
(String nom,
String pais,
double peso,
int edad
){ this.nombre=nom;
this.pais=pais;
this.peso=peso;
this.edad=edad;
}
/*----------GETS-SETS----------*/
return nombre;
}
public void setNombre
(String nombre
) { this.nombre = nombre;
}
return pais;
}
public void setPais
(String pais
) { this.pais = pais;
}
public double getPeso() {
return peso;
}
public void setPeso(double peso) {
this.peso = peso;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
/*------------------------------------------------------------------------*/
}
Zoológico
Código Java:
Ver original/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package zoo;
import java.util.*;
/**
*
* @author Joan
*/
public class Zoologico {
//Vector v = new Vector (3/1);
/*public Zoologico(){
}*/
public Zoologico() {
Bestario = new ArrayList<>();
}
public void anyadeAnimal
(ArrayList <Animal
> Bestario
){ Animal ficha;
ficha=new Animal();
//v.addElement(a);
Scanner leer
= new Scanner
(System.
in);
System.
out.
println("Introduce su nombre: "); ficha.nombre=leer.nextLine();
System.
out.
println("Introduce su país de procedencia: "); ficha.pais=leer.nextLine();
System.
out.
println("Introduce su peso: "); ficha.peso=leer.nextDouble();
System.
out.
println("Introduce su edad:"); ficha.edad=leer.nextInt();
Bestario.add(ficha);
}
public static void mostrarAnimales
(ArrayList <Animal
> Bestario
){ int i=0;
Iterator it
= Bestario.
iterator(); //Porque utilizar esto --> http://goo.gl/EfvDx0 if (!it.hasNext())
System.
out.
println("No Hay Animales en el registro."+"\n"); else
while (it.hasNext())
{
it.next();
System.
out.
println("Animal nº: " +(i
+1) +"\n"+ "Nombre: " +Bestario.get(i).nombre +"\n"+
"Pais: " +Bestario.get(i).pais +"\n"+
"Peso: " +Bestario.get(i).peso +"\n"+
"Edad: " +Bestario.get(i).edad +"\n\n");
i++;
}
}
public static void comparaPeso
(ArrayList <Animal
> Bestario
) {
int i=0,j=1;
while (it.hasNext())
{
it.next();
if ((Bestario.get(i).peso)>(Bestario.get(j).peso))
{
j++;
System.
out.
println( "Nombre: " +Bestario.
get(i
).
nombre +"\n"+ "Pais: " +Bestario.get(i).pais +"\n"+
"Peso: " +Bestario.get(i).peso +"\n"+
"Edad: " +Bestario.get(i).edad +"\n\n");
}
else
{
System.
out.
println( "Nombre: " +Bestario.
get(j
).
nombre +"\n"+ "Pais: " +Bestario.get(j).pais +"\n"+
"Peso: " +Bestario.get(j).peso +"\n"+
"Edad: " +Bestario.get(j).edad +"\n\n");
}
i++;
}
}