Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

5.1K
Vistas
Cómo encontrar el segundo salario más alto en la siguiente lista de matrices usando flujos de Java8
class Employee { int id; String name; int age; String gender; String department; int yearOfJoining; double salary; public Employee(int id, String name, int age, String gender, String department, int yearOfJoining, double salary) { this.id = id; this.name = name; this.age = age; this.gender = gender; this.department = department; this.yearOfJoining = yearOfJoining; this.salary = salary; } public int getId() { return id; } public String getName() { return name; } public int getAge() { return age; } public String getGender() { return gender; } public String getDepartment() { return department; } public int getYearOfJoining() { return yearOfJoining; } public double getSalary() { return salary; } @Override public String toString() { return "Id : "+id +", Name : "+name +", age : "+age +", Gender : "+gender +", Department : "+department +", Year Of Joining : "+yearOfJoining +", Salary : "+salary; } }

 List<Employee> employeeList = new ArrayList<Employee>(); employeeList.add(new Employee(111, "Jiya Brein", 32, "Female", "HR", 2011, 25000.0)); employeeList.add(new Employee(122, "Paul Niksui", 25, "Male", "Sales And Marketing", 2015, 13500.0)); employeeList.add(new Employee(133, "Martin Theron", 29, "Male", "Infrastructure", 2012, 18000.0)); employeeList.add(new Employee(144, "Murali Gowda", 28, "Male", "Product Development", 2014, 32500.0)); employeeList.add(new Employee(155, "Nima Roy", 27, "Female", "HR", 2013, 22700.0)); Optional<Employee> emp = employeeList.stream() .collect(Collectors.maxBy(Comparator.comparingDouble(Employee::getSalary)));
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Después de ordenar la lista según el salario en orden inverso, puede omitir el más alto con skip(1) y luego obtener el primer empleado después de eso con el método findFirst() para encontrar el segundo salario más alto.

Prueba esto:

 Optional<Employee> emp = employeeList.stream() .sorted(Comparator.comparingDouble(Employee::getSalary).reversed()).skip(1).findFirst(); System.out.println(emp.get());

Producción:

 Id : 111, Name : Jiya Brein, age : 32, Gender : Female, Department : HR, Year Of Joining : 2011, Salary : 25000.0
over 4 years ago · Santiago Trujillo Denunciar

0

necesita ordenar la lista, luego obtener el segundo (el índice de la lista comienza desde 0).

1.

 List<Employee> sortedList = employeeList.stream() .sorted(Comparator.comparingDouble(Employee::getSalary).reversed()).collect(Collectors.toList());
  1. sortedList.get(1)
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda