Ajuda para ler um trecho do código

System.out.println();
System.out.print("Enter the employee id that will have salary increase: ");
int id = teclado.nextInt();
Entities emp = list.stream().filter(x -> x.getId() == id).findFirst().orElse(null);
if (emp == null) {
System.out.println(“This id does not exist!”);
} else {
System.out.print("Enter the percentage: ");
double percentage = teclado.nextDouble();
emp.increaseSalary(percentage);
}

Essas linhas pegam um ID e verifica se ele existe,caso ele existir ele pede pra digitar qual a porcentagem vai ser acresentada

a parte que não entendi é a seguinte
Entities emp = list.stream().filter(x -> x.getId() == id).findFirst().orElse(null);

o que isso faz? e ele cria outro objeto?

Olá. Para programar é bom ter um pouco de conhecimento sobre inglês, saber algumas palavras usadas no java vai alavancar seu nível.

Entities emp = list.stream().filter(x -> x.getId() == id).findFirst().orElse(null);
Esse comando vai procurar na lista, e filtrar os resultados de acordo com o ID. Caso ele ache o ID vai definir ‘emp’ (creio que seja ‘empregado’) com o resultado. Caso não ache o resultado sera null e o código vai te dizer que o usuário não existe/não foi encontrado na lista.

E sobre ser objeto ou não vou deixar para os outros colegas do GUJ responderem. Entities da pra definir tipo > Entities emp[12] que seria um vetor, e um objeto. Quando ele é apenas uma variável não sei se podemos chamar de objeto.