Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

5.1K
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda