Pocas veces he tenido que recurrir al do/while, desde mi punto de vista, veo bastante mas sencillo hacerlo con el while, es como mas entendible.
Pues esa función get que dices, es propia de la clase ArrayList y lo que hace es devolver un objeto dentro del ArrayList, por ejemplo:
Si yo quisiera obtener algo del array lo haría así:
Ahí estaría obteniendo un objeto que esta en la posicion 1, funciona igual que con los Arrays tradicionales, tu metes y sacas los valores.
En cuanto a lo de:
Acá tienes que usar un poco mas de lógica, yo lo hice de la siguiente manera,
Seria bueno que le heches un ojo y lo intentes hacer de nuevo basándote en este código:
Lo único que he hecho acá fue cambiar agregar un array de int y modificar totalmente el ciclo for del final.
Este metodo deberás agregarlo a la clase Empleado.
Si no entiendes algo, comenta la duda.
Salu2
Pues esa función get que dices, es propia de la clase ArrayList y lo que hace es devolver un objeto dentro del ArrayList, por ejemplo:
Código (java) [Seleccionar]
ArrayList array = new ArrayList();
Si yo quisiera obtener algo del array lo haría así:
Código (java) [Seleccionar]
array.get(0);
Ahí estaría obteniendo un objeto que esta en la posicion 1, funciona igual que con los Arrays tradicionales, tu metes y sacas los valores.
En cuanto a lo de:
CitarPero, se me ha olvidado comentar que lo que tengo que mostrar son los empleados que no tengan ningún dato igual que otro, osea, si uno tiene de sueldo 1000, y otro también tiene 1000, que sólo muestre uno, aunque se llamen diferente. O sea, que no muestre datos repetidos.
Acá tienes que usar un poco mas de lógica, yo lo hice de la siguiente manera,
Seria bueno que le heches un ojo y lo intentes hacer de nuevo basándote en este código:
Código (java) [Seleccionar]
import java.util.ArrayList;
import java.util.Scanner;
public class Clase1 {
public static void main(String[] args) {
ArrayList<Empleado> empleados = new ArrayList<Empleado>();
Scanner s = new Scanner(System.in);
while(true) {
System.out.print("Introduce el nombre del empleado: ");
String nombre = s.next();
System.out.println();
System.out.print("Introduce su sueldo: ");
int sueldo = s.nextInt();
System.out.println();
empleados.add(new Empleado(nombre, sueldo));
System.out.println("¿Quieres añadir algún empleado más? (S/N)");
String respuesta = s.next();
if(respuesta.equalsIgnoreCase("n")) {
break;
}
}
int[] valores = new int[empleados.size()];//En este array vamos guardando todos los valores de los empleados a medida que lo mostramos
for(int i = 0; i < empleados.size(); i++){//Recorremos todos los empleados agregados
boolean mostrarEmpleadoActual = true;//Inidicamos si mostramos el usuario actual o no
//Este ciclo se fija si el empleado actual tiene el mismo sueldo que otro empleado, si es asi cambia el valor de la variable
//mostrarEmpleadoActual por false
for (int i2 = 0; i2 < valores.length; i2++) {
if(empleados.get(i).getSueldo() == valores[i2]) {
mostrarEmpleadoActual = false;
break;
}
}
//Se fija el valor de la variable mostrarEmpleadoActual, si es verdadero mostramos el empleado
if(mostrarEmpleadoActual) {
valores[i] = empleados.get(i).getSueldo();
empleados.get(i).get();
}
}
}
}
Lo único que he hecho acá fue cambiar agregar un array de int y modificar totalmente el ciclo for del final.
Código (java) [Seleccionar]
public int getSueldo() {
return this.sueldo;
}
Este metodo deberás agregarlo a la clase Empleado.
Si no entiendes algo, comenta la duda.
Salu2