Dúvida em um programa simples Java

Bom dia gente, estou fazendo uma lista de java básico e não consegui realizar uma atividade dela. Segue aqui a questão: Faça um Programa que leia um vetor de 10 números reais e mostre-os na ordem inversa.

Fiz desse modo, porém acho que está incorreta.

public static void main(String[] args) {
  Scanner entrada = new Scanner (System.in);
  
  double[] reais = new double[10];
  int i;
  
  for (i = 0; i < 10; i++) {
    System.out.println("Digite 10 valores reais para a lista: ");
    reais[i] = entrada.nextDouble();
  }    
  System.out.println(reais[10]);
}

Sou iniciante em java!! Desculpe pelo erros bobos.

Mostrar na ordem inversa acredito que você teria que mostrar da última posição do array para a primeira!

Exemplo:

final Scanner scanner = new Scanner(System.in);

System.out.println("Digite 10 valores reais para a lista:");

// Lê 10 valores em ordem de input do usuário
final double[] numbers = new double[10];
for (int i = 0;  i < 10; i++) {
    numbers[i] = Double.parseDouble(scanner.next());
}

// Cria um novo array com a ordem inversa a ordem de leitura
final double[] inverseNumbers = new double[10];
for (int i = 9; i >= 0; i--) {
    inverseNumbers[i] = numbers[(numbers.length -1) - i];
}

// Exibe no console o array de ordem inversa
System.out.println(Arrays.toString(inverseNumbers));

Você poderia também inverter a ordem do mesmo array lido, sem precisar criar um novo com a ordem inversa!

Exemplo:

final Scanner scanner = new Scanner(System.in);

System.out.println("Digite 10 valores reais para a lista:");

// Lê 10 valores em ordem de input do usuário
final double[] numbers = new double[10];
for (int i = 0;  i < 10; i++) {
    numbers[i] = Double.parseDouble(scanner.next());
}

// Altera o mesmo array lido aplicando a ordem inversa
int length = numbers.length;
final int limit = length / 2;
for (int i = 0;  i < limit; i++) {
    double aux = numbers[i];
    numbers[i] = numbers[length - 1];
    numbers[length - 1] = aux;
    length -= 1;
}

// Exibe no console o array de ordem inversa
System.out.println(Arrays.toString(numbers));

Você poderia também já ler diretamente nas posições inversas, evitando um trabalho posterior, mas acredito que o intuíto do execício seria conseguir manipular esta estrutura de dados.

Exemplo:

final Scanner scanner = new Scanner(System.in);

System.out.println("Digite 10 valores reais para a lista: ");

// Lê 10 valores em ordem inversa
final double[] numbers = new double[10];
final int length = numbers.length;
for (int i = length - 1;  i >= 0; i--) {
    numbers[i] = Double.parseDouble(scanner.next());
}

// Exibe no console o array de ordem inversa
System.out.println(Arrays.toString(numbers));
1 curtida