Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Pepote21

Páginas: [1] 2 3 4 5
1
Hola a todos.
Primero agradecimiento a kabuto porque aprendo.
Segundo, pongo un poco de los métodos que he hecho.. Vereis alguno sc.nextLine() que quizás os sobren, ya que algunas cosas de mi código son diferentes.
Código: [Seleccionar]
public static void registrarAutor(){
        System.out.println("\n\tCREAR AUTOR.");
        sc.nextLine();
        System.out.print("Nombre: ");
        String nombre=sc.nextLine();
        System.out.print("Alias: ");
        String alias=sc.nextLine();
        System.out.print("Nacionalidad: ");
        String nacionalidad=sc.nextLine();
        System.out.print("Fecha nacimiento: ");
        String fNacimiento=sc.nextLine();
        Autor autor=new Autor(nombre,alias,nacionalidad,fNacimiento);
        autores.add(autor);
        if(libros.isEmpty()){
            System.out.println("No hay libros registrados.");
        }else{
            for(Libro libro:libros){
                if(libro.getAutoria().equalsIgnoreCase(nombre)){
                    autor.agregarLibro(libro);
                }
            }
        }
       
    }
   
    public static void listarAutores(){
        System.out.println("\n\tLISTAR AUTORES.");
        if (socios.isEmpty()){
            System.out.println("No hay socios registrados");
        }else{
            for(Autor autor:autores){
                System.out.println("\n" +autor.toString());
            }
        }
    }
   
    public static void listarLibrosAutor(){
        sc.nextLine();
        System.out.print("Autor: ");
        String nombre=sc.nextLine();
        if (autores.isEmpty())
            System.out.println("No hay autores registrados");
else {
            for(Autor autor:autores){
                if(autor.getNombre().equals(nombre)){
                    autor.listarLibros();
                }
            }
        }
    }
   
    public static void registrarLibro(){
        sc.nextLine();
        System.out.println("CREAR LIBRO.");
        System.out.print("Código: ");
        String codigo=sc.nextLine();
        System.out.print("Título: ");
        String titulo=sc.nextLine();
        System.out.print("Autoría: ");
        String autoria=sc.nextLine();
        System.out.print("Disponibilidad: ");
        boolean disponibilidad=sc.nextBoolean();
       
        Localizacion localizacion=new Localizacion();
        sc.nextLine();
        System.out.print("Número piso:");
        localizacion.numPiso=sc.nextLine();
        System.out.print("Número habitación:");
        localizacion.numHabitacion=sc.nextLine();
        System.out.print("Número estante:");
        localizacion.numEstante=sc.nextLine();
       
        System.out.print("Elegir área: ");
        for(Area area:Area.values()){
            System.out.print(area+" ");
        }
        Area tipo=null;
        while(tipo==null){
            System.out.print("\nTipo área: ");
            tipo=Area.convertirCadena(sc.nextLine());
            if(tipo==null){
                System.out.println("El tipo de área no es válido");
            }
        }
        localizacion.area=tipo;
        Libro libro=new Libro(codigo,titulo,autoria,disponibilidad,localizacion);
        libros.add(libro);
    }
   
    public static void localizarLibro(){
        System.out.println("BUSCAR LIBRO.");
        if (libros.isEmpty()){
            System.out.println("No hay libros registrados");
        }else{
            sc.nextLine();
            System.out.print("Código: ");
            String codigo=sc.nextLine();
            for(Libro libro:libros){
                if(libro.getCodigo().equals(codigo)){
                    System.out.println("LOCALIZACIÓN: "+libro.getLocalizacion().toString());
                }
            }
        }       
    }
   
    public static void cambiarLocalizacionLibro(){
        System.out.println("CAMBIAR LOCALIZACIÓN LIBRO.");
        if (libros.isEmpty()){
            System.out.println("No hay libros registrados");
        }else{
            sc.nextLine();
            Localizacion localizacion=new Localizacion();
            System.out.print("Código: ");
            String codigo=sc.nextLine();
            for(Libro libro:libros){
                if(libro.getCodigo().equals(codigo)){
                    System.out.print("Número piso para nueva localización:");
                    localizacion.numPiso=sc.nextLine();
                    System.out.print("Número habitación para nueva localización:");
                    localizacion.numHabitacion=sc.nextLine();
                    System.out.print("Número estante para nueva localización:");
                    localizacion.numEstante=sc.nextLine();

                    System.out.print("Elegir área para nueva localización: ");
                    for(Area area:Area.values()){
                        System.out.print(area+" ");
                    }
                    Area tipo=null;
                    while(tipo==null){
                        System.out.print("\nTipo área nueva localización: ");
                        tipo=Area.convertirCadena(sc.nextLine());
                        if(tipo==null){
                            System.out.println("El tipo de área no es válido");
                        }
                    }
                    localizacion.area=tipo;
                    libro.setLocalizacion(localizacion);
                }
            }
        }       
    }

No sé si están perfectos pero a mi me funcionan.
Un saludo a todos.

2
Gracias Kabuto. No había visto el correo hasta ahora. Mi problema era debido a que no había comprobado listado=getObjSdao().read(); .Esto me funcionaba en su clase donde lo había comprobado pero no en esta, de ahí mi error de primer curso. Me han ayudado porque como la comprobación inicial funcionaba me había cegado en otra parte del código.

Agradezco tu solución que después comprobaré, pero muestro la que he hecho en este momento, que es esta:

Código: [Seleccionar]
listado=getObjSdao().read();
for(int i=0;i<listado.size();i++){
                        sala=(Sala) listado.get(i);
                        if(sala.getNumSala()==numRegistro){
                            break;
                        }                           
                    } 
if(sala.getNumSala()==numRegistro){
                loadFormulario(sala);
}else{
                JOptionPane.showMessageDialog(getObjM(), "No existe registro con el valor introducido.");                       
                }

Un saludo a todos.

3
Hola a todos.

Tengo una clase Validador en el modelo con el siguiente método:

Código: [Seleccionar]
public DefaultFormatterFactory validarDosEnteros(){
        nf=NumberFormat.getNumberInstance();
        nf.setParseIntegerOnly(true);
        nf.setMaximumIntegerDigits(2);
        nft=new NumberFormatter(nf);
        nft.setAllowsInvalid(false);
        dff=new DefaultFormatterFactory(nft);
        return dff;
    }

Tengo la clase Controlador donde tengo:

Código: [Seleccionar]
getFtfNumSala().setFormatterFactory(validador.validarDosEnteros());
listado=getObjSdao().read(); //saber los registros de la db   

El problema que tengo es que me encuentro en un formulario con un JFormattedTextField que inicialmente está vacio y cuando introduzco un dato correcto de la base de datos, todo funciona bien al pulsar el botón LEER. Pero si pulso el botón LEER con el JFormattedTextField vacio o introduciendo un dato incorrecto (o eliminado) de la base de datos me causa una Exception NumberFormatException.

Llevo ya un par de días sin poder resolverlo. A ver si alguien me echa una mano.

De antemano gracias y un saludo a todos.

4
Hola otra vez.
Finalmente resolver los proyectos creados directamente con el ide ApacheNetbeans para cargar las imagenes ha sido más fácil. Solo había, tras poner las imagenes en el directorio resources, utilizar el clean and compile. Un saludo

5
Hola otra vez.
He conseguido resolverlo creando un nuevo proyecto maven en línea de comandos. Los programas que no funcionaban estaban en un proyecto iniciado en apache netbeans. El pom creado es diferente y además al compilar también se han puesto los archivos de imagenes en el directorio target. A día de hoy, como no sé suficiente respecto a maven, no puedo explicar claramente el motivo o la diferencia en la resolución de un proyecto con respecto al otro. En cuanto lo sepa lo haré.
Un saludo a todos..

6
Hola.
Hace tiempo que estoy estudiando java y hace un par de meses cambié a apache netbeans 11.3. Tenía bastantes códigos utilizando imágnes que funcionaban perfectamente y al realizar proyectos con maven ya no me funcionan las imagenes. He probado dónde colocar el archivo de imágenes en diferentes sitios pero no consigo encontrar la resolución dle problema. Si meto las imágenes en la carpeta target sí que funciona pero no creo que sea la solución correcta. Creo que la solución correcta debería estar bien en la carpeta raiz "src" o inlcuso la posiblidad de carpetas de la misma. No tengo mucha experiencia con maven. A ver si alguien sabe un poco de esto. Gracias de antemano.

7
Gracias Kabuto.
Lo he solucionado de la siguiente manera:
Inicialmente obtenía los datos de la base de datos de dos tablas, primera,codigo, nombre, y segunda, tipo de via.
Cuando obtenía el tipo de vía era un String y entonces me dificultaba el setSelectedIndex, aunque supongo que había forma de resolverlo. Lo que he hecho ha sido incluir en la obtención, el código del tipo de vía. Así pues, en la consulta he añadido el código, el cual no me hacía falta para la consulta. No sé si esta es la mejor forma, pero ha sido mi solución.
Saludo a todos.

8
Hola. Quisiera hacer una consulta para ver si alguien me puede informar.
Tengo un formulario con un jcombobox y entonces quisiera utilizarlo tanto para insertar como para ver. Dicho formulario también lo cargo desde otro panel.
Mi pregunta es si el jcombobox puedo cargarlo y enabled o debo crear otro formulario sustituyendo los jcombobox por jtextfield.
Como podréis entender lo que intento es utilizar un único formulario.
Un saludo a todos.

9
Hola.
Como respuesta a mi escrito anterior, lo he resuelto haciendo que todas las clases que implementen las interfaces de eventos hereden  de la clase controlador.
Un saludo.

10
Hola.
Como dije anteriormente estoy utilizando MVC metiendo las clases que corresponden a la GUI en el paquete vista y los datos y lógica en el paquete Modelo. Por lo tanto, estoy utilizando el paquete Controlador para la relación entre ambos con la aplicación de eventos.
Utilizando solo una clase controlador, considerando que esta solo puede extender una clase, y en este caso me refiero a clases adapter, como MouseAdapter y WindowAdapter me veo obligado a:
1. No utilizar clases adapter e implementar las interfaces ....Listener teniendo que asumir que debo implementar todos los métodos de dichas interfaces, aunque algunos ls puedo dejar vacios, o
2. Crear clases adapter dentro del paquete controlador.

No sé si estoy equivocado en mi forma de desarrollar el programa. A ver si alguien me puede informar de cual es la mejor opción a realizar.
De todas formas actualmente estoy probando esto.
Un saludo a todos. Gracias

11
Hola Kabuto.
Muchas gracias por la explicación y consejo. Algo así necesitaba.
Te sigo. Un saludo

12
Hola a todos. Estoy aprendiendo a programar y, generalmente, cuando el programa es un poco largo utilizo el patrón MVC. Lo que yo entiendo por este patrón es que las partes vista (solo GUI) y modelo (datos y lógica) van completamente separadas y es como yo lo hago. Sin embargo veo muchos ejemplos de MVC, en los cuales, dentro de la vista incluyen datos como el ingresar los datos de un combobox.

Repito, yo intento aprender con todo separado. Pero estoy teniendo problemas cuando los componentes tienen un modelo como el combobox y las tablas.

Mi pregunta es ¿Sabéis si siempre se puede separar o a veces, como por ejemplo cargar un combobox debo hacerlo en la vista?

A la espera de respuesta, un saludo.

13
Hola Ogramar.
Agradezo de nuevo tu correción. No la esperaba ya después de varios meses.
Aunque ya no haya temarios de java en aprenderaprogramar.com sigo estudiando mucho java y de vez en cuando suelo entrar en la web de aprenderaprogramar.com, como hice ayer.
Me equivoqué en el título del anterior ejercicio y en este tienes razón.  A veces me desvió del enunciado del ejercicio debido a querer presentar ejercicios diferentes (no copiar) sin tener en cuenta lo que dice el ejercicio.
Nada más pueda repasaré este ejercicio.
Java, aunque sigue costándome, a día de hoy ya he realizado mi primer programa, una agenda prototipo en modo MVC a la cual tengo aún que añadir clases para suplementarla más.
Un saludo.

14
Hola fmartinez25.
Me alegro. Aunque he visto un pequeño error al final del mío, que en su día no me dí cuenta.
Con respecto a tus códigos, también me gustan y te sigo.
Un saludo.

15
Hola otra vez. He hecho un nuevo código sobre el ejercicio que os paso. La clase Paquete es la misma.
Gracias

Código: [Seleccionar]
import java.util.Iterator;
import java.util.Random;
import java.util.Vector;
import practicas.avanzadas.t922C.ejercicio.Paquete;

/**
 *
 * @author pepote21
 */
public class ContenedorApr2 {
    private Vector<Paquete> contenedor;
    private int capacidadPaquetes;
    private int incrementoPaquetes;
    private int pesoMaximoContenedor;
    private int cargaMaximaContenedor;
    private int pesoTotalPaquetes;
   
    public ContenedorApr2(){//Constructor 1
        contenedor=new Vector<Paquete>();
        capacidadPaquetes=0;
        incrementoPaquetes=0;
        pesoMaximoContenedor=100;
        cargaMaximaContenedor=0;
        pesoTotalPaquetes=0;
    }
    public ContenedorApr2(int capacidad,int incremento,int pesoMaximoContenedor){//Constructor 2
        contenedor=new Vector<Paquete>();
        this.capacidadPaquetes=capacidad;
        this.incrementoPaquetes=incremento;
        this.pesoMaximoContenedor=pesoMaximoContenedor;
    }
    public void addPaquete(Paquete paquete){contenedor.add(paquete);}
    public Vector<Paquete> getContenedor(){return contenedor;}
   
    public void setPesoMaximoContenedor(int pesoMaximoContenedor){this.pesoMaximoContenedor=pesoMaximoContenedor;}
    public int getPesoMaximoContenedor(){return pesoMaximoContenedor;}
    public void setCargaMaximaContenedor(int cargaMaximaContenedor){this.cargaMaximaContenedor=cargaMaximaContenedor;}
    public int getCargaMaximaContenedor(){return cargaMaximaContenedor;}
    public void setCapacityContenedor(int capacidadPaquetes){this.capacidadPaquetes=capacidadPaquetes;}
    public int getCapacityContenedor(){return capacidadPaquetes;}
    public void setPesoTotalPaquetes(int pesoTotalPaquetes){this.pesoTotalPaquetes=pesoTotalPaquetes;}
    public int getPesoTotalPaquetes(){return pesoTotalPaquetes;}
   
    public void addPaquetes(int numPaquetes){
        Random rnd=new Random();         
        for(int i=1;i<=numPaquetes;i++){
            Paquete p=new Paquete(i,rnd.nextInt(71)+80);
            contenedor.add(p);
            setCapacityContenedor(i);//Número paquetes
            capacidadPaquetes=getCapacityContenedor();
            pesoTotalPaquetes=p.getPesoPaquete()+pesoTotalPaquetes;         
        }
    }
   
   
   
    public void determinarEstadoContenedor(){ 
        Iterator<Paquete> it=contenedor.iterator();//Recorrer y listar con iterator
        while(it.hasNext()){
            Paquete tmp=it.next();
           
        }
        String msg=("Un contenedor con capacidad para "+capacidadPaquetes+" paquetes podría cargar "+
                cargaMaximaContenedor+" kilos y tenemos "+capacidadPaquetes+" paquetes con un peso total de: "+
                pesoTotalPaquetes+" kilos");       
        String msg3=(". No ha sido necesario aumentar la capacidad");
        if(pesoTotalPaquetes<cargaMaximaContenedor){
            System.out.println(msg+msg3);       
        }else{
            while(pesoTotalPaquetes>cargaMaximaContenedor){
                capacidadPaquetes++;
                cargaMaximaContenedor=capacidadPaquetes*100;
            }
            if(pesoTotalPaquetes<=cargaMaximaContenedor){
                String msg2=(". Se ha aumentado la capacidad a "+capacidadPaquetes+
                    "\n paquetes lo que permite cargar hasta "+pesoTotalPaquetes+" kilos");
                System.out.println(msg+msg2);
            }
        }   
    }
   
    public void mostrarDatosContenedor(){     
        capacidadPaquetes=getCapacityContenedor();
        pesoMaximoContenedor=getPesoMaximoContenedor();
        setCargaMaximaContenedor(capacidadPaquetes*pesoMaximoContenedor);
        cargaMaximaContenedor=getCargaMaximaContenedor();
        System.out.println("CAPACIDAD DEL CONTENEDOR: \nNúmero de paquetes: "+capacidadPaquetes+
                "\nPeso Máximo contenedor: "+pesoMaximoContenedor+"\nCarga máxima contenedor: "+cargaMaximaContenedor+
                "\nPeso total de los paquetes: "+pesoTotalPaquetes+"\n");
    }
}

Código: [Seleccionar]
public class Principal {
    public static void main(String[]args){
        ContenedorApr2 c=new ContenedorApr2(5,1,100);
        Paquete p=new Paquete();
        c.mostrarDatosContenedor();
        c.addPaquetes(50); 
        c.mostrarDatosContenedor();
       
        c.determinarEstadoContenedor();
    }
}

16
Hola a todos. Os paso mi código del ejercicio CU00922C del tutorial pdf de programación avanzada Java de aprenderaprogramar. Gracias a todos. Un saludo.

Código: [Seleccionar]
public class Paquete {
    private int idPaquete;
    private int pesoPaquete;
   
    public Paquete(){
        idPaquete=0;
        pesoPaquete=0;
    }
   
    public Paquete(int idPaquete,int pesoPaquete){
        this.idPaquete=idPaquete;
        this.pesoPaquete=pesoPaquete;
    }

    public int getIdPaquete() {
        return idPaquete;
    }

    public void setIdPaquete(int idPaquete) {
        this.idPaquete = idPaquete;
    }

    public int getPesoPaquete() {
        return pesoPaquete;
    }

    public void setPesoPaquete(int pesoPaquete) {
        this.pesoPaquete = pesoPaquete;
    }

    @Override
    public String toString() {
        return "Paquete{" + "idPaquete=" + idPaquete + ", pesoPaquete=" + pesoPaquete + '}'+"\n";
    }
   
}
Código: [Seleccionar]
import java.util.Iterator;
import java.util.Random;
import java.util.Vector;

/**
 * Ejercicio CU00922C aprenderaprogramar.com
 * Interfaz list, clase VECTOR
 * Recorrer contenedor de paquetes al que se le añaden paquetes
 *
 * @author pepote21
 * @version 20171107
 */
public class Principal {
    public static void main(String[] args){
        Vector<Paquete> v=new Vector(5,1);//Contenedor con capacidad de 5 paquetes
        System.out.println("Capacidad inicial del contenedor: "+v.capacity()+" paquetes.");
        int cargaMaximaContenedor=v.capacity()*100;
        System.out.println("Capacidad máxima del contenedor: "+cargaMaximaContenedor+" kgs.");
       
        Random rnd=new Random();
        Paquete p=new Paquete();
        int pesoTotal=0;
               
        for(int i=0;i<50;i++){
            p.setPesoPaquete(rnd.nextInt(71)+80);//Aleatoriamente se establece el peso de cada paquete
            pesoTotal=p.getPesoPaquete()+pesoTotal;//Peso total contenedor
            v.add(p); //Añadimos 50 paquetes al contenedor   
        }
        System.out.println("Capacidad actual del contenedor: "+v.capacity());
        cargaMaximaContenedor=v.capacity()*100;
       
        pesoTotal=0;
        Iterator<Paquete> it=v.iterator();
        while(it.hasNext()){
            Paquete tmp=it.next();
            pesoTotal=tmp.getPesoPaquete()+pesoTotal;
        }
        String msg=("Un contenedor con capacidad para "+v.capacity()+" paquetes podría cargar "+
                cargaMaximaContenedor+" y tenemos "+v.capacity()+" paquetes con un peso total de: "+pesoTotal);       
        String msg3=(". No ha sido necesario aumentar la capacidad");
        if(pesoTotal<cargaMaximaContenedor){
            System.out.println(msg+msg3);       
        }
        while(pesoTotal>cargaMaximaContenedor){
            v.ensureCapacity(v.capacity()+1);//ampliar la capacidad
            cargaMaximaContenedor=v.capacity()*100;
            if(pesoTotal<=cargaMaximaContenedor){
                String msg2=(". Se ha aumentado la capacidad a "+v.capacity()+"\n paquetes lo que permite cargar hasta "+
                cargaMaximaContenedor+" kilos");
                System.out.println(msg+msg2);
            }         
        }
    }   
}

17
Hola a todos. Os paso mis códigos del ejercicio CU00921C del tutorial pdf de programación Java avanzada.

Código con linkedList= Vehiculo, ListadoVehiculos, Principal

Código con ArrayList=Vehiculo, ListadoVehiculos2, Principal2

Gracias.

Con respecto a los apartados:

a) Con linkedList 18.000.000 nanosegundos.
b) Con arrayList: 6.000.000 nanosegundos.
c) Las diversas pruebas me dan lo mismo, es decir que con ArrayList el tiempo invertido ha sido 1/3 del invertido en LinkedList, o sea, menor y al contrario de lo indicado en el temario. No sé a que se deben las diferencias. Espero no haber hecho algún error en el código. Pero además me salen tiempos mayores en el LinkedList comparándolo también con el código de Erik_Escriche.

Un saludo.

Código: [Seleccionar]
public class Vehiculo {
    private int idVehiculo;
    private String tipo;
   
    public Vehiculo(){
        idVehiculo=0;
        tipo="";
    }
   
    public Vehiculo(int idVehiculo,String tipo){
        this.idVehiculo=idVehiculo;
        this.tipo=tipo;
    }
   
    public int getIdVehiculo(){
        return idVehiculo;
    }
   
    public String getTipo(){
        return tipo;
    }
   
    public void setIdVehiculo(int idVehiculo){
        this.idVehiculo=idVehiculo;
    }
   
    public void setTipo(String tipo){
        this.tipo=tipo;
    }
   
    @Override
    public String toString(){
        return "Vehiculo ID: "+idVehiculo+". Tipo: "+tipo+"\n";
    }
}

Código: [Seleccionar]
package practicas.avanzadas.t921C.ejercicio2;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import practicas.avanzadas.t921C.ejercicio.Vehiculo;
/**
 *
 * @author pepote21
 */
public class ListadoVehiculos {
    List<Vehiculo> listaArray;
   
    public ListadoVehiculos(){
        listaArray=new LinkedList<Vehiculo>();
    }
   
    public void addVehiculo(Vehiculo vehiculo){
        listaArray.add(vehiculo);
    }
   
    public List<Vehiculo> getLista(){
        return listaArray;
    }
   
    @Override
    public String toString(){
        return listaArray.toString();
    }
   
    public Iterator<Vehiculo> iterator(){
        return new MiIteratorListadoVehiculos();
    }
   
   
    protected class MiIteratorListadoVehiculos implements Iterator<Vehiculo>{//clase interna
        public int posicion = 0;
        public boolean sepuedeeliminar = false; // Campos
       
        @Override
        public boolean hasNext() {
            return posicion < listaArray.size();
        } // Método
       
        @Override
        public Vehiculo next() { // Método
            Vehiculo res = listaArray.get(posicion); // Creamos un objeto Persona igual al que recorremos
            posicion ++;
            sepuedeeliminar = true;
            return res;
        }
       
        @Override
        public void remove() {
            if (sepuedeeliminar) {
                listaArray.remove(posicion-1);
                posicion--;
                sepuedeeliminar = false; }
        } // Cierre del método remove
    } // Cierre de la clase interna
}

Código: [Seleccionar]
package practicas.avanzadas.t921C.ejercicio2;

import java.util.Iterator;
import java.util.Random;
import practicas.avanzadas.t921C.ejercicio.Vehiculo;

/**
 * Ejercicio CU00921C aprenderaprogramar.com
 * Interfaz list, clase linkeList
 * Recorremos linkedList vehículos y eliminamos algunos
 * Diferencias entre linkedList y arrayList
 * @author pepote21
 * @version 20171106
 */
public class Principal {   
    public static void introVehiculos(ListadoVehiculos lista){//Introducimos 5000 vehículos en la lista
        Random rnd=new Random();
        String [] tipoVehiculo={"Coche","Camion","Furgoneta","Moto"};       
        for(int i=0;i<5000;i++){
            lista.getLista().add(new Vehiculo(i,tipoVehiculo[rnd.nextInt(4)]));//Atributo tipo establecido de forma aleatoria
        }
    }
    public static void recorrerListaMostrarCantidadVehiculos(ListadoVehiculos lista){//Recorremos lista y mostramos resumen de vehículos de cada tipo
        Vehiculo tmp;
        int coches=0;
        int camiones=0;
        int furgonetas=0;
        int motos=0;
        Iterator<Vehiculo> it=lista.iterator();//Recorremos la lista
        while(it.hasNext()){
            tmp=it.next();           
            switch(tmp.getTipo()){//Contamos los elementos de cada tipo
                case "Coche":
                coches++;
                break;
                case "Camion":
                camiones++;
                break;
                case "Furgoneta":
                furgonetas++;
                break;
                case "Moto":
                motos++;
                break;
            }
        }
        System.out.println("Resumen: hay "+coches+" coches, "+camiones+" camiones, "+
                furgonetas+" furgonetas y "+motos+" motos.");
    }
    public static void recorrerListaModificarCantidadVehiculos(ListadoVehiculos lista){
        Vehiculo tmp;
        String [] tipoVehiculo={"Coche","Camion","Furgoneta","Moto"};
        int coches=0;
        int camiones=0;
        int furgonetas=0;
        int motos=0;
        int vehiculosEliminados=0;
        long antes;
        long resultado;
        antes=System.nanoTime();
        Iterator<Vehiculo> it=lista.iterator();//Recorremos la lista
        while(it.hasNext()){
            tmp=it.next();
            if(!tmp.getTipo().equals("Coche")){
                it.remove();
                vehiculosEliminados++;
            }
        }
        coches=5000-vehiculosEliminados;
        System.out.println("Se han eliminado de la lista "+vehiculosEliminados+" vehiculos quedando "+coches+" coches");
        for(int i=0;i<vehiculosEliminados;i++){
            lista.getLista().add(new Vehiculo(coches+i+1,tipoVehiculo[0]));
            coches++;
        }
        resultado=System.nanoTime()-antes;
        System.out.println("Se han invertido "+resultado+" nanosegundos en eliminar y añadir vehiculos");
        System.out.println("Resumen: hay "+coches+" coches, "+camiones+" camiones, "+
                furgonetas+" furgonetas y "+motos+" motos.");
    }
    public static void main(String[]args){
        ListadoVehiculos lista=new ListadoVehiculos();
        introVehiculos(lista);
        recorrerListaMostrarCantidadVehiculos(lista);
        recorrerListaModificarCantidadVehiculos(lista);     
    }         
}

Código: [Seleccionar]
package practicas.avanzadas.t921C.ejercicio2;

import java.util.Iterator;
import java.util.ArrayList;
import java.util.List;
import practicas.avanzadas.t921C.ejercicio.Vehiculo;

/**
 *
 * @author pepote21
 */
public class ListadoVehiculos2 {
    List<Vehiculo> listaArray;
   
    public ListadoVehiculos2(){
        listaArray=new ArrayList<Vehiculo>();
    }
   
    public void addVehiculo(Vehiculo vehiculo){
        listaArray.add(vehiculo);
    }
   
    public List<Vehiculo> getLista(){
        return listaArray;
    }
   
    @Override
    public String toString(){
        return listaArray.toString();
    }
   
    public Iterator<Vehiculo> iterator(){
        return new MiIteratorListadoVehiculos();
    }
   
   
    protected class MiIteratorListadoVehiculos implements Iterator<Vehiculo>{//clase interna
        public int posicion = 0;
        public boolean sepuedeeliminar = false; // Campos
       
        @Override
        public boolean hasNext() {
            return posicion < listaArray.size();
        } // Método
       
        @Override
        public Vehiculo next() { // Método
            Vehiculo res = listaArray.get(posicion); // Creamos un objeto Persona igual al que recorremos
            posicion ++;
            sepuedeeliminar = true;
            return res;
        }
       
        @Override
        public void remove() {
            if (sepuedeeliminar) {
                listaArray.remove(posicion-1);
                posicion--;
                sepuedeeliminar = false; }
        } // Cierre del método remove
    } // Cierre de la clase interna
}

Código: [Seleccionar]
package practicas.avanzadas.t921C.ejercicio2;

import java.util.Iterator;
import java.util.Random;
import practicas.avanzadas.t921C.ejercicio.Vehiculo;

/**
 *
 * @author pepote21
 */
public class Principal2 {
    public static void introVehiculos(ListadoVehiculos2 lista){//Introducimos 5000 vehículos en la lista
        Random rnd=new Random();
        String [] tipoVehiculo={"Coche","Camion","Furgoneta","Moto"};       
        for(int i=0;i<5000;i++){
            lista.getLista().add(new Vehiculo(i,tipoVehiculo[rnd.nextInt(4)]));//Atributo tipo establecido de forma aleatoria
        }
    }
    public static void recorrerListaMostrarCantidadVehiculos(ListadoVehiculos2 lista){//Recorremos lista y mostramos resumen de vehículos de cada tipo
        Vehiculo tmp;
        int coches=0;
        int camiones=0;
        int furgonetas=0;
        int motos=0;
        Iterator<Vehiculo> it=lista.iterator();//Recorremos la lista
        while(it.hasNext()){
            tmp=it.next();           
            switch(tmp.getTipo()){//Contamos los elementos de cada tipo
                case "Coche":
                coches++;
                break;
                case "Camion":
                camiones++;
                break;
                case "Furgoneta":
                furgonetas++;
                break;
                case "Moto":
                motos++;
                break;
            }
        }
        System.out.println("Resumen: hay "+coches+" coches, "+camiones+" camiones, "+
                furgonetas+" furgonetas y "+motos+" motos.");
    }
    public static void recorrerListaModificarCantidadVehiculos(ListadoVehiculos2 lista){
        Vehiculo tmp;
        String [] tipoVehiculo={"Coche","Camion","Furgoneta","Moto"};
        int coches=0;
        int camiones=0;
        int furgonetas=0;
        int motos=0;
        int vehiculosEliminados=0;
        long antes;
        long resultado;
        antes=System.nanoTime();
        Iterator<Vehiculo> it=lista.iterator();//Recorremos la lista
        while(it.hasNext()){
            tmp=it.next();
            if(!tmp.getTipo().equals("Coche")){
                it.remove();
                vehiculosEliminados++;
            }
        }
        coches=5000-vehiculosEliminados;
        System.out.println("Se han eliminado de la lista "+vehiculosEliminados+" vehiculos quedando "+coches+" coches");
        for(int i=0;i<vehiculosEliminados;i++){
            lista.getLista().add(new Vehiculo(coches+i+1,tipoVehiculo[0]));
            coches++;
        }
        resultado=System.nanoTime()-antes;
        System.out.println("Se han invertido "+resultado+" nanosegundos en eliminar y añadir vehiculos");
        System.out.println("Resumen: hay "+coches+" coches, "+camiones+" camiones, "+
                furgonetas+" furgonetas y "+motos+" motos.");
    }
    public static void main(String[]args){
        ListadoVehiculos2 lista=new ListadoVehiculos2();
        introVehiculos(lista);
        recorrerListaMostrarCantidadVehiculos(lista);
        recorrerListaModificarCantidadVehiculos(lista);     
    }         
}

18
Hola a todos. Os paso mi código del ejercicio CU00920C del tutorial pdf de programación Java. Gracias. Un saludo.

Clase TipoDeCuadrupedo

Código: [Seleccionar]
public enum TipoDeCuadrupedo {
    LEON,PERRO,GATO,ELEFANTE
}


Clase Cuadrupedo

Código: [Seleccionar]
public class Cuadrupedo {
    private int idCuadrupedo;
    private String tipo; //León, Perro, Gato, Elefante
   
    public Cuadrupedo(){
        idCuadrupedo=0;
        tipo="";
    }
   
    public Cuadrupedo(int idCuadrupedo,String tipo){
        this.idCuadrupedo=idCuadrupedo;
        this.tipo=tipo;
    }
   
    public int getIdCuadrupedo(){
        return idCuadrupedo;
    }
   
    public String getTipoCuadrupedo(){
        return tipo;
    }
   
    @Override
    public String toString(){
        return "Cuadrupedo->ID: "+idCuadrupedo+" Tipo: "+tipo;
    }
   
    public void setTipusCuadrupedo(int tipus){
        switch(tipus){
            case 0:this.tipo=TipoDeCuadrupedo.LEON.toString();break;
            case 1:this.tipo=TipoDeCuadrupedo.PERRO.toString();break;
            case 2:this.tipo=TipoDeCuadrupedo.GATO.toString();break;
            case 3:this.tipo=TipoDeCuadrupedo.ELEFANTE.toString();break;
        }
    }
}


Clase ListaDeCuadrupedos

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 *
 * @author
 */
public class ListaDeCuadrupedos {
    private List<Cuadrupedo> listaCuadrupedos;
   
    public ListaDeCuadrupedos(){
        listaCuadrupedos=new ArrayList<Cuadrupedo>();
    }
   
    public List<Cuadrupedo> getLista(){return listaCuadrupedos;}
    public void addCuadrupedo(Cuadrupedo cuadrupedo){
        listaCuadrupedos.add(cuadrupedo);
    }
    public Iterator<Cuadrupedo> iterator() {
        return new MiIteradorListaCuadrupedos();
    }
   
    protected class MiIteradorListaCuadrupedos implements Iterator<Cuadrupedo>{ // Clase interna
        public int posicion = 0;
        public boolean sepuedeeliminar = false;
       
        @Override
        public boolean hasNext() {
            return posicion < listaCuadrupedos.size();
        }
       
        @Override
        public Cuadrupedo next() {
            Cuadrupedo res = listaCuadrupedos.get(posicion); // Creamos un objeto Cuadrupedo igual al que recorremos
            posicion ++;
            sepuedeeliminar = true;
            return res;
        }
       
        @Override
        public void remove() {
            if (sepuedeeliminar) {
                listaCuadrupedos.remove(posicion-1);
                posicion--;
                sepuedeeliminar = false; }
        }
    } // Cierre de la clase interna
}


Clase con el main

Código: [Seleccionar]
import java.util.Iterator;
import java.util.Random;

/**
 *
 * @author
 */
public class Principal {
    public static void main(String[]args){
        Cuadrupedo a=new Cuadrupedo();
        ListaDeCuadrupedos lista=new ListaDeCuadrupedos();
        Random rnd=new Random();
        int leones=0;
        int perros=0;
        int gatos=0;
        int elefantes=0;
        for(int i=0;i<10000;i++){
            a.setTipusCuadrupedo(rnd.nextInt(4));
            lista.addCuadrupedo(new Cuadrupedo(i,a.getTipoCuadrupedo()));
            if(a.getTipoCuadrupedo()=="LEON"){
                leones++;
            }else if(a.getTipoCuadrupedo()=="PERRO"){
                perros++;
            }else if(a.getTipoCuadrupedo()=="GATO"){
                gatos++;
            }else{
                elefantes++;
            }
        }
        Iterator<Cuadrupedo> it=lista.iterator();
        while(it.hasNext()){
            Cuadrupedo tmp=it.next();
            if (tmp.getIdCuadrupedo()%1000==0){ //multiplos de 1000
                System.out.println(tmp);
            }
        }
        System.out.println("Resumen: hay "+leones+" leones, "+perros+" perros, "+
                gatos+" gatos y "+elefantes+" elefantes");
    }
}

19
Hola Ogramar.
Como me gusta la programación voy a seguir en ello, y seguiré consultando aprenderaprogramar.com para seguir aprendiendo. Como os dije agradezco todo.
Y con respecto a colaborar no hay ningún problema por mi parte dentro de mis posibilidades. Así pues, a vuestra disposición.
Un saludo.

20
Hola Ogramar.
Primero, agradecerte tanto la corrección de mis ejercicios como cualquier otra ayuda que me hayas dado. Segundo, considerando que ya he acabado digamos todo lo relativo a páginas WEB hasta AJAX, también agradecer a aprenderaprogramar.com y a sus integrantes su web en cuanto al temario y al servicio de aprendizaje para los que estamos interesados en la programación . Y tercero, también agradecer a todos los colaboradores partícipes en la realización de códigos y de los que he aprendido mucho. Debido a mi poco tiempo en programación siento no haber podido aportar nada.
Aunque seguiré consultando en la web, un saludo a todos.

Páginas: [1] 2 3 4 5

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".