|
181
|
Programación / Java / Re: Ordenar por nombre y sueldo
|
en: 22 Marzo 2015, 15:16 pm
|
No entiendo porque usas List en vez de ArrayList ni en que se diferencian. Tampoco entiendo el : Collections.addAll Ni el : Collections.sort Ni el public int compare Y en la clase del objeto Empleado, ¿porque Integer en vez de int? :/ Prácticamente no entiendo lo que hacen los métodos que utilizas ni como funciona exactamente el código, estoy muy perdido Disculpas por la ignoracia :/
|
|
|
182
|
Programación / Java / Re: Ordenar por nombre y sueldo
|
en: 20 Marzo 2015, 13:33 pm
|
Gracias Gus por la respuesta ¡! Pero me cuesta comprender el código :/ Pero una cosita, como se debe ordenar es por nombre, y en caso de que algunos se llamen igual, se ordenarán por sueldo, me expliqué yo mal
|
|
|
183
|
Programación / Java / Ordenar por nombre y sueldo
|
en: 19 Marzo 2015, 20:59 pm
|
Buenas, antes que nada pedir disculpas por ser tan pesado y por mi falta de conocimientos :/ El problema es que necesito ordenar un ArrayList de objetos que tienen String (nombre) y un int (sueldo), he hecho un método y si pongo 4 empleados si que me los ordena y parece que funciona bien, pero he probado con más y no funciona como debería :/ Aquí está el código: import java.util.ArrayList; import java.util.Scanner; public class ejercicio{ public static void ordenar(ArrayList<Empleado> empleados){ Empleado aux; for(byte i = 0; i<empleados.size(); i++){ if(i<(empleados.size()-1)){ if(empleados.get(i).getNombre().compareToIgnoreCase(empleados.get(i+1).getNombre())>0){ aux = empleados.get(i); empleados.remove(i); empleados.add(aux); } } } for(byte i = 0; i<empleados.size(); i++){ if(i<(empleados.size()-1)){ if(empleados.get(i).getNombre().compareToIgnoreCase(empleados.get(i+1).getNombre())==0){ if(empleados.get(i).getSueldo()<empleados.get(i+1).getSueldo()){ aux = empleados.get(i); empleados.remove(i); empleados.add(aux); } } } } } public static void main (String[] args ) { ArrayList<Empleado> empleados = new ArrayList<Empleado>(); Scanner S = new Scanner (System. in); do{ char respuesta = 'S'; System. out. print("Introduce el nombre del empleado: "); System. out. print("Introduce su sueldo: "); int sueldo = S.nextInt(); resp = S.nextLine(); empleados.add(new Empleado(nombre, sueldo)); System. out. println("¿Quieres añadir algún empleado más? (S/N)"); resp = S.nextLine(); }while(resp.equalsIgnoreCase("S")); ordenar(empleados); System. out. println("Empleados ordenados por nombre (asc.) y por sueldo(desc.)"); for(byte i = 0; i<empleados.size(); i++){ System. out. println("Empleado [Nombre: "+empleados. get(i ). getNombre()+" Sueldo: "+empleados. get(i ). getSueldo()+"]"); } } }
No entiendo en que falla :/ Gracias de antemano y un saludo ¡!
|
|
|
184
|
Informática / Hardware / FIFO en memoria y procesos
|
en: 18 Marzo 2015, 23:19 pm
|
Buenas, antes que nada disculparme si este tema no va en este apartado, aunque creo que es el más indicado.
Mi duda es que tengo que hacer un ejercicio cuyo enunciado es : Un proceso que genera la siguiente secuencia de direcciones de memoria en un sistema con tamaño de página de 100 bytes, en el que se dispone de 3 marcos de página: 810, 150, 221, 390, 302, 107, 465, 172, 509, 333, 460, 111, 475, 319, 278, 219, 339, 192, 227, 840, 102, 236. Aplicando un algoritmo FIFO de reemplazo, ¿cuántas faltas de página se producen?
Mi pregunta es, los números, se refieren cada uno a un proceso ¿no? y si es así, el primero (810) por ejemplo, no podría ejecutarse en ese sistema ¿no?
La verdad que no entiendo muy bien el enunciado :/
Gracias de antemano y un saludo ¡!
|
|
|
185
|
Programación / Java / Re: Error con char y métodos listas
|
en: 16 Marzo 2015, 09:49 am
|
Muchas gracias a los dos este ejercicio ya era más complejo :/ Lo del scanner me di cuenta al probar el código jaja pero hice lo de otro nextLine y solucionado Gracias a los dos
|
|
|
186
|
Programación / Java / Re: Error con char y métodos listas
|
en: 15 Marzo 2015, 21:05 pm
|
No me aclaro :/ He modificado así el código del for para imprimir: for(int i=0;i<empleados.size();i++){ if(repetido(empleados, empleados.get(i).getNombre(), empleados.get(i).getSueldo())){ System. out. println("Empleado "+empleados. get(i ). getNombre()+" sueldo "+empleados. get(i ). getSueldo()); } }
Y el método lo he dejado así : public static boolean repetido (ArrayList <Empleado > empleados, String nombre, int sueldo ){ for(int i=0;i<empleados.size();i++){ if((empleados.get(i).getNombre().equals(nombre)) || (empleados.get(i).getSueldo()==sueldo)){ return false; } } return true; }
Y pruebo creando 3 objetos, y dos de ellos con el mismo nombre, y no me imprime ninguno :/ y si cambio los returns( el false por el true y viceversa) me imprime los 3 aunque se repitan :/
|
|
|
189
|
Programación / Java / Re: Error con char y métodos listas
|
en: 15 Marzo 2015, 19:54 pm
|
Aaah vale, lo usa para crear o no el nuevo Empleado. Yo a lo que me refería es que no muestre los que se repitan algun dato, pero que si los pueda crear. Supongo que poniendo el if ese dentro del for del main, y en vez de llamar al constructor, que imprima lo que imprime el for, conseguiría el resultado que busco, ¿no?
|
|
|
190
|
Programación / Java / Re: Error con char y métodos listas
|
en: 15 Marzo 2015, 18:44 pm
|
Pablopbl genial explicado El método get del ArrayList te dice que objeto está en esa posición, pero no te muestra nada por sí mismo, sólo la referencia al objeto como tal ¿no? Y el método de "repetido" de crack81 creo que funcionaría bien, pero no veo cuando llamas a ese método para mostrar los que no se repiten en el for del main :/
|
|
|
|
|
|
|