Java - Ordenas arreglos

 
Vista:
sin imagen de perfil
Val: 19
Ha disminuido su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

Ordenas arreglos

Publicado por Jose (11 intervenciones) el 13/12/2018 04:31:35
ALGUIEN ME PODRÍA AYUDAR A VER COMO PUEDO ORDENAR ALFABETICAMENTE LOS NOMBRES
TENGO ESTE CODIGO.
ESTAS EN CLASES SEPARADAS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
public class estudiante{
    private String nombre;
    private String tipo;
    private int calificacion;
 
    public estudiante (String nombre, String tipo, int calificacion){
        this.nombre = nombre;
        this.tipo = tipo;
        this.calificacion = calificacion;
    }
 
    public String getNombre() {
        return nombre;
    }
    public String getTipo() {
        return tipo;
    }
    public int getcalificacion() {
        return calificacion;
    }
 
}
 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
import java.util.ArrayList;
import javax.swing.JOptionPane;
 
 
public class estudiante2 {
  private ArrayList<estudiante> estudiante2;
public estudiante2(){
    estudiante2 = new ArrayList<>();
}
public void agregarEstudiante(estudiante nuevoEstudiante){
estudiante2.add(nuevoEstudiante);
}
 public boolean buscaporNombre(String name){
boolean encontrado = false;
int i = 0;
while (encontrado == false && i<estudiante2.size()){
 if (estudiante2.get(i).getNombre().compareToIgnoreCase(name)==0){
     encontrado = true;
}else{
       i++;
        }
        }
if(encontrado){
    JOptionPane.showMessageDialog(null, " Nombre: " + estudiante2.get(i).getNombre() + "\n"
    + "Tipo : " + estudiante2.get(i).getTipo() + "\n"
    + "Calificacion : " + estudiante2.get(i).getcalificacion());
    return false;
}else{
    JOptionPane.showMessageDialog(null,"el nombre no esta en el arreglo...!");
return true;
}
}
}
 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////77
import javax.swing.JOptionPane;
 
 
public class Imprimir_Calificacion {
    public static void main(String [] args){
        estudiante s1 = new estudiante ("Marcos", "Estudiante", 10);
        estudiante s2 = new estudiante ("Carlos", "Estudiante", 5);
        estudiante s3 = new estudiante ("Manuel", "Estudiante", 8);
        estudiante2 school = new estudiante2();
        school.agregarEstudiante(s1);
        school.agregarEstudiante(s2);
        school.agregarEstudiante(s3);
        boolean valor = false;
        do{
            String Nombre = JOptionPane.showInputDialog("Ingrese un nombre");
            valor = school.buscaporNombre(Nombre);
 
       }while(valor);
 
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ordenas arreglos

Publicado por kingk (108 intervenciones) el 13/12/2018 20:51:08
Hola, lo que buscas es ordenar los objetos Estudiante del ArrayList por su propiedad nombre?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ordenas arreglos

Publicado por Billy Joel (875 intervenciones) el 13/12/2018 23:31:57
No estoy seguro de que es lo que quieres hacer pero supongamos que tienes un arreglo del objeto Estudiante y quieres ordenarlo te recomiendo este método:
1
2
3
4
5
6
7
8
9
10
11
public static void ordenarAlfabeticamente(Estudiante[] estudiantes) {
    for (int i = estudiantes.length - 1; i > 0; i--) {
        for (int j = 0; j < i; j++) {
            if (j + 1 <= i && estudiantes[j].getNombre().compareTo(estudiantes[j + 1].getNombre()) > 0) {
                Estudiante aux = estudiantes[j];
                estudiantes[j] = estudiantes[j + 1];
                estudiantes[j + 1] = aux;
            }
        }
    }
}

Esta es una implementación de ordenamiento por burbuja.
Para verlo funcionar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static void main(String[] args) {
    Estudiante[] estudiantes = {
        new Estudiante("Marcos", "Estudiante", 10),
        new Estudiante("Carlos", "Estudiante", 5),
        new Estudiante("Manuel", "Estudiante", 5)
    };
 
    for (int i = 0; i < estudiantes.length; i++) {
        System.out.println(i + ": " + estudiantes[i].getNombre());
    }
 
    //ahora ordenamos el arreglo
    ordenarAlfabeticamente(estudiantes);
    System.out.println("Despues de ordenar");
    for (int i = 0; i < estudiantes.length; i++) {
        System.out.println(i + ": " + estudiantes[i].getNombre());
    }
}

Espero haberte ayudado, cualquier duda escribe
Saludos,
;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar