Hola,
Necesito ayuda con un código de Java.
La duda es simple pero no veo el fallo.
Creo una clase compuesta de tres arrays (original, descendente y ascendente).
Original sólo se usa en muestraOriginal() y en el constructor por lo que yo creo que al llamar a muestraOriginal() debería mostrarse el array tal cual se recibió en el constructor.
Pero no, al llamar a dicho método muestra el array tal cual quedó en el último método llamado desde el constructor.
Dejo el código a ver si podéis decirme dónde fallo:
public class pJava {
private int[] original;
private int[] descendente;
private int[] ascendente;
public pJava (int[] n) {
this.original = n;
this.ascendente=n;
this.descendente=n;
//al llamar al método muestraOriginal muestra siempre
//la última de las 2 siguientes ordenaciones en lugar del array original ¿?¿?¿?
//si cambio el orden cambia el String devuelto por muestraOriginal()
ordenacionAsc();
ordenacionDesc();
}
public String muestraOriginal(){
String aMostrar="";
for(int i=0; i<this.original.length; i++){
aMostrar=aMostrar+this.original[i]+" ";
}
return aMostrar;
}
public void ordenacionAsc(){
int aux;
for(int i=0; i<this.ascendente.length-1; i++){
for(int j=i+1; j<this.ascendente.length; j++){
if(this.ascendente[j]< this.ascendente[i]){
aux=this.ascendente[i]; this.ascendente[i]=this.ascendente[j]; this.ascendente[j]=aux;
}
}
}
}
public void ordenacionDesc(){
int aux;
for(int i=0; i<this.descendente.length-1; i++){
for(int j=i+1; j<this.descendente.length; j++){
if(this.descendente[j]> this.descendente[i]){
aux=this.descendente[i]; this.descendente[i]=this.descendente[j]; this.descendente[j]=aux;
}
}
}
}
}