Preciso de ajuda para falar o nome do aluno na hora da impressão nesse programa

1- Faça um programa que leia um vetor com as notas de 4 alunos e imprima o aluno com a maior nota e com a menor nota e a media das notas.

import java.util.Scanner;
public class Main {

public static void main(String[] args) {
    
String nomes[] = new String[4];

double notas[] = new double[4];
double soma = 0, media, maior = 0, menor = 999;
int nomeMaior = 0 ,nomeMenor = 0;

for(int i = 0; i < 4; i++) {
    
    System.out.println("Digite o nome do aluno: "+(i+1));
    nomes[i] = new Scanner(System.in).nextLine();

    System.out.println("Insira a nota do aluno: "+(i+1));
    notas[i] = new Scanner(System.in).nextDouble();
    soma = soma + notas[i];   
}
media = soma / 4;
System.out.println("\nA Média das notas dos alunos foi: "+media+"\n"); 
   
for(int i =0; i < 4; i++) {
    
if(notas[i] > maior){
    maior = notas[i];
    nomeMaior = i+1; 

}
else if(notas[i] < menor) {
menor = notas[i];
nomeMenor = i+1;
}

}
System.out.println("O aluno com maior nota foi " +nomeMaior+ " e sua nota foi " +maior);
System.out.println("O aluno com menor nota foi " +nomeMenor+ " e sua nota foi " +menor);

}
}

public static void main(String[] args) {

        final Scanner scanner = new Scanner(System.in);
        final String nomes[] = new String[4];
        final double notas[] = new double[4];

        for (int i = 0; i < 4; i++) {
            System.out.println("Digite o nome do " + (i + 1) + "º aluno: ");
            nomes[i] = scanner.nextLine();

            System.out.println("Insira a nota do " + (i + 1) + "º aluno: ");
            notas[i] = Double.parseDouble(scanner.nextLine());
        }

        double somaDasNotas = 0;
        int indiceMaior = 0, indiceMenor = 0;
        for (int i = 0; i < 4; i++) {
            somaDasNotas += notas[i];

            if (notas[i] > notas[indiceMaior]) {
                indiceMaior = i;
            }

            if (notas[i] < notas[indiceMenor]) {
                indiceMenor = i;
            }
        }

        final double media = somaDasNotas / notas.length;

        System.out.println("A Média das notas dos alunos foi: " + media);
        System.out.println("O aluno com maior nota foi " + nomes[indiceMaior] + " e sua nota foi " + notas[indiceMaior]);
        System.out.println("O aluno com menor nota foi " + nomes[indiceMenor] + " e sua nota foi " + notas[indiceMenor]);
}

Valeu cara, me salvou!