Duda de array en Java

Iniciado por splendid37, 12 Enero 2018, 20:39 PM

0 Miembros y 1 Visitante están viendo este tema.

splendid37

Hola.

En el siguiente código necesito introducir dos identificadores de coches por scanner y que me muestre cual es el coche que ha recorrido más kilometros.

No sé como plantearlo os agradecería vuestra ayuda.

Código (java) [Seleccionar]


import java.util.Scanner;

public class Coches {

    public static void main(String[] args) {

        Scanner teclado = new Scanner(System.in);
       
        Coches coche = new Coches();
       
        // Se almacenan un numero máximo de coches (4).
       
        Coches array [] = new Coches [4];
       
        int contador = 0;
       
        if (contador < array.length) {
                       
            System.out.println("Introduce el identificador del coche : ");
                       
            int identificador;
            int kilometros;
       
            System.out.print("Identificador :");
            identificador = teclado.nextInt();
                       
            System.out.print("Kilometros :");
            kilometros = teclado.nextInt();
           
            coche = new Coches(identificador,kilometros);
                       
            array [contador] = coche;
            contador++;
                   
            System.out.print("Coche dado de alta");
            System.out.println();

        }else{
                       
            System.out.print("Se ha alcanzado el maximo de coches");
        }
       
        // Comparar coches: el usuario introducirá dos identificadores de coches y se mostrará el coche que haya recorrido más kilometros.
         
    }
}



Gracias, Saludos.

rub'n

#1
Hola que tal ? prueba esto a ver, avisa si te funciona no te pierdas  :xD o si quieres pierdete, hablas de introducir 2 identificadores?  :-\

Código (java) [Seleccionar]
package testing.foro.identificadorCoches;

public class BeanCoches {

   private Integer kilometros;
   private String identificador;

   public BeanCoches(String identificador, Integer kilometros) {
       this.identificador = identificador;
       this.kilometros = kilometros;
   }

   public void setKilometros(Integer kilometros) {
       this.kilometros = kilometros;
   }
   public void setIdentificador(String identificador) {
       this.identificador = identificador;
   }

   public String getIdentificador() {
       return identificador;
   }

   public Integer getKilometros() {
       return kilometros;
   }

   @Override
   public String toString() {
       return "\nIdentificador: "
               .concat(identificador)
               .concat("\nKilometros: ")
               .concat(kilometros.toString());
   }
}



Código (java) [Seleccionar]
package testing.foro.identificadorCoches;

import javax.swing.*;
import java.util.Scanner;

/*
En el siguiente codigo necesito introducir dos identificadores de coches por scanner y
que me muestre cual es el coche que ha recorrido mas kilómetros.
*/

public class Coches {

   private static final Scanner TECLADO = new Scanner(System.in);
   private JTextArea area = new JTextArea();

   public Coches() {
       init();
   }

   private void init() {
       // Se almacenan un numero maximo de coches (4).

       BeanCoches arrayCoches[] = new BeanCoches[4];

       int contador = 0;

       for (int f = 0; f < arrayCoches.length; f++) {
           println("Introduce el identificador del coche: ");
           final String identificador;
           final int kilometros;

           print("Identificador: ");
           identificador = TECLADO.next();
           print("Kilometros: ");
           kilometros = TECLADO.nextInt();

           //seteamos al contructor el identificador y kilometros 2 parametros
           //tambien se pueden sus setters
           final BeanCoches coche = new BeanCoches(identificador, kilometros);

           arrayCoches[f] = coche;
           //System.out.print("Coche dado de alta ");
           //System.out.println();
           //Comparar coches: el usuario introducir dos identificadores de coches y se mostrar el coche que haya recorrido mas kilometros.
       }


       println("Coches Procesados MAYOR KILOMETRAJE ###########################################");
       String cocheIdentificador = "";
       Integer cocheMayor = 0;
       for (int f=0; f<arrayCoches.length; f++) {
           cocheMayor = mayorKilometraje(arrayCoches);
           cocheIdentificador = getCocheIdentificador(arrayCoches);
       }

       final StringBuilder mensaje = new StringBuilder();
       mensaje.append("Coche con Mayor Kilometraje");
       mensaje.append("\n * Identificador: ").append(cocheIdentificador);
       mensaje.append("\n * Kilometraje: ").append(cocheMayor);


       print(mensaje.toString());
       area.setText(mensaje.toString());
       JOptionPane.showMessageDialog(null,area,"Coches Procesados",1);
   }

   //Buscar coche con mayor Kilometraje
   public Integer mayorKilometraje(final BeanCoches arrayCoches[]) {
       int index = arrayCoches[0].getKilometros();
       for( int f=0; f < arrayCoches.length; f++ ) {
           if( arrayCoches[f].getKilometros() > index ) { //obtenemos el kilometraje
               index = arrayCoches[f].getKilometros();
           }
       }
       return index;
   }

   //Buscar coche con mayor Kilometraje y cuando lo encuentre obtenemos el nombre
   private String getCocheIdentificador(final BeanCoches beanCoches[]) {
       int index = beanCoches[0].getKilometros();
       String identificador = beanCoches[0].getIdentificador();
       for(int f=0; f<beanCoches.length;f++) {
           if(beanCoches[f].getKilometros() > index) {
               identificador = beanCoches[f].getIdentificador();
           }
       }
       return identificador;
   }
   private static <T> void print(final T s) {
       System.out.print(s);
   }
   private static <T> void println(final T s) {
       System.out.println(s);
   }
   public static void main(String[] args) throws ClassNotFoundException, UnsupportedLookAndFeelException, InstantiationException, IllegalAccessException {
       UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
       new Coches();
   }
}


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen