El código que expuse hace eso. sortByName ordena por nombres. En caso hayan dos o más empleados con nombres iguales (muy raro en una misma empresa pero puede suceder), se ordenarán por sueldo. He modificado un poco SortTest:
Y como puedes ver en la salida, aunque Bugs Bunny aparezca dos veces en la lista de empleados, se ordenan de acuerdo al sueldo. Esto lo hace automáticamente compare. Si dos propiedades son idénticas, compara la siguiente propiedad en busca de diferencias para poder ordenar.
Dime qué cosas no entiendes del código y trataré de explicártelo.
Código (java) [Seleccionar]
List<Employee> employees = new ArrayList<>();
Collections.addAll(employees,
new Employee(1, "Homer Simpson", 3500d),
new Employee(2, "Peter Griffin", 3000d),
new Employee(3, "Bugs Bunny", 3500d),
new Employee(4, "Chris Redfield", 2500d),
new Employee(5, "Alice Abernathy", 3500d),
new Employee(6, "Bugs Bunny", 4200d) // nuevo elemento
);
Y como puedes ver en la salida, aunque Bugs Bunny aparezca dos veces en la lista de empleados, se ordenan de acuerdo al sueldo. Esto lo hace automáticamente compare. Si dos propiedades son idénticas, compara la siguiente propiedad en busca de diferencias para poder ordenar.
Código [Seleccionar]
Ordenando por nombre...
ID: 5
Nombres: Alice Abernathy
Salario: 3500.0
ID: 3
Nombres: Bugs Bunny
Salario: 3500.0
ID: 6
Nombres: Bugs Bunny
Salario: 4200.0
ID: 4
Nombres: Chris Redfield
Salario: 2500.0
ID: 1
Nombres: Homer Simpson
Salario: 3500.0
ID: 2
Nombres: Peter Griffin
Salario: 3000.0
Dime qué cosas no entiendes del código y trataré de explicártelo.